Building NGINX Gateway Fabric and NGINX Images

Overview

While most users will install NGINX Gateway Fabric with Helm or Kubernetes manifests, manually building the NGINX Gateway Fabric and NGINX images can be helpful for testing and development purposes. Follow the steps in this document to build the NGINX Gateway Fabric and NGINX images.

Prerequisites

Before you can build the NGINX Gateway Fabric and NGINX images, make sure you have the following software installed on your machine:

If building the NGINX Plus image, you will also need a valid NGINX Plus license certificate (nginx-repo.crt) and key (nginx-repo.key) in the root of the repo.

Steps

  1. Clone the repo and change into the nginx-gateway-fabric directory:

    git clone https://github.com/nginxinc/nginx-gateway-fabric.git --branch v1.2.0
    cd nginx-gateway-fabric
    
  2. Build the images:

    • To build both the NGINX Gateway Fabric and NGINX images:

      make PREFIX=myregistry.example.com/nginx-gateway-fabric build-prod-images
      
    • To build both the NGINX Gateway Fabric and NGINX Plus images:

      make PREFIX=myregistry.example.com/nginx-gateway-fabric build-prod-images-with-plus
      
    • To build just the NGINX Gateway Fabric image:

      make PREFIX=myregistry.example.com/nginx-gateway-fabric build-prod-ngf-image
      
    • To build just the NGINX image:

      make PREFIX=myregistry.example.com/nginx-gateway-fabric build-prod-nginx-image
      
    • To build just the NGINX Plus image:

      make PREFIX=myregistry.example.com/nginx-gateway-fabric/nginx-plus build-prod-nginx-plus-image
      

    Set the PREFIX variable to the name of the registry you’d like to push the image to. By default, the images will be named nginx-gateway-fabric:1.2.0 and nginx-gateway-fabric/nginx:1.2.0 or nginx-gateway-fabric/nginx-plus:1.2.0.

  3. Push the images to your container registry:

    docker push myregistry.example.com/nginx-gateway-fabric:1.2.0
    docker push myregistry.example.com/nginx-gateway-fabric/nginx:1.2.0
    

    or

    docker push myregistry.example.com/nginx-gateway-fabric:1.2.0
    docker push myregistry.example.com/nginx-gateway-fabric/nginx-plus:1.2.0
    

    Make sure to substitute myregistry.example.com/nginx-gateway-fabric with your registry.