在 Dockerfile 中我们可以通过设置 ENV 来进行环境变量的默认声明:
FROM golang:alpineENV \LISTEN_ADDR=:8080 \RABBITMQ_SERVER=amqp://username:password@0.0.0.0:5672WORKDIR /appCOPY build/apiServer_linux apiServerEXPOSE 8080CMD ["./apiServer"]
我们在启动容器时,可以通过以下参数来对 env 变量进行覆盖
docker run -d -e LISTEN_ADDR=0.0.0.0:80 apiServer
如果希望在构建镜像时注入,可以通过 ARG 来实现
FROM golang:alpineARG LISTEN_ADDRARG RABBITMQ_SERVERENV \LISTEN_ADDR=${LISTEN_ADDR:-default} \RABBITMQ_SERVER=${RABBITMQ_SERVER:-default}WORKDIR /appCOPY build/apiServer_linux apiServerEXPOSE 8080CMD ["./apiServer"]
只需要在 build 时同时提供 arg 参数
docker build --build-arg LISTEN_ADDR=:8080
