To work on the OpenFaaS API Gateway component checkout the "./build.sh" scripts and acompanying Dockerfiles.
Build a development API Gateway¶
- Build a new development Docker image:
$ cd gateway/ $ ./build.sh
This creates a Docker image with the name
functions/gateway:latest-dev, but if you want to use something else then pass the tag as an argument to the
./build.sh script. I.e.
Now edit the Docker image for the
gatewayservice in your
Redeploy the stack.
Work on the UI the quick way¶
Working on the UI with the procedure above could take up to a minute to iterate between changing code and testing the changes. This section of the post shows how to bind-mount the UI assets into the API gateway as a separate container.
Remove the Docker stack, then re-define the faas network as "attachable":
$ docker stack rm func $ docker network create func_functions --driver=overlay --attachable=true
Now edit the
docker-compose.yml file and replace the existing networks block with:
networks: functions: external: name: func_functions
Now deploy the rest of the stack with:
Now you can run the gateway as its own container via
docker run and bind-mount in the HTML assets.
$ docker service rm func_gateway $ docker run --name func_gateway -v `pwd`/gateway/assets:/root/assets \ -v "/var/run/docker.sock:/var/run/docker.sock" \ -p 8080:8080 --network=func_functions \ -d functions/gateway:latest-dev