我有以下 dockerfile:
FROM alpine:latest
RUN apk add wget
RUN wget --http-user=foo@gmail.com --http-password=asdfghjhgfdf https://my.datomic.com/repo/com/datomic/datomic-pro/$VERSION/da tomic-pro-$VERSION.zip -O datomic-pro-$VERSION.zip
CMD ["datomic-pro-$VERSION/bin/transactor" "config/samples/dev-transactor-templ ate.properties
"]
在最后一行我想运行 datomic-pro-$VERSION/bin/transactor 但 $VERSION 取决于环境变量。如何使字符串采用正确的环境变量?目前它使用文字 $VERSION 而不是 CMD 中的环境变量注入的内容。
答案 0 :(得分:0)
您可以使用 coords[0] = results[0].geometry.location.lat();
coords[1] = results[0].geometry.location.lng();
来传递构建时间参数。在 docker build 期间将环境变量作为 ARG
传递给 --build-arg <key1>=<value1>
命令
在这种情况下
docker build
然后按如下方式构建您的容器:
FROM alpine:latest
RUN apk add wget
RUN wget --http-user=foo@gmail.com --http-password=asdfghjhgfdf https://my.datomic.com/repo/com/datomic/datomic-pro/$VERSION/da tomic-pro-$VERSION.zip -O datomic-pro-$VERSION.zip
ARG VERSION
CMD ["datomic-pro-$VERSION/bin/transactor" "config/samples/dev-transactor-template.properties
"]
在 docker build 中,现在您也可以传递普通的 shell 环境变量
$ docker build --build-arg VERSION=122.345 Dockerfile
答案 1 :(得分:-1)
如果您有很多环境变量,特别是如果它们是秘密的,您可以使用 env 文件:
$ docker run --env-file ./my_env_test ubuntu bash
第二个选项 您也可以在 Dockerfile 中定义 ENV。
ENV DATABASE_URL 127.0.0.1