Dockerfile - 使用 env 文件中的环境变量
Dockerfile - use environment variable from env file
我有一个 docker 组合设置,我想在我的 docker 文件中使用 env 文件中的环境变量。我想在构建期间使用这些变量,因为我使用此版本号连接字符串以形成下载 URL.
这里我写了一部分我正在使用的文件只是为了把重点放在我的问题上。
.env
MY_APP_VER=v1.2.3
docker-compose.yml
version: "2"
services:
my-app:
build: .
container_name: my_app
environment:
- my_app_version=$MY_APP_VER
Docker 文件
FROM scratch
ENV my_app_ver=$my_app_version
RUN echo $my_app_ver
我检查了各种来源,但都没有成功。我不确定这是否可能,或者我是否使用了错误的语法(我应该使用引号还是不使用例如“$my_app_ver”或大括号 ${my_app_ver}).
docker-compose 中有一个名为 env-file
的选项,您可以利用它:https://docs.docker.com/compose/environment-variables/#the-env_file-configuration-option
version: "3"
services:
my-app:
build: .
container_name: my_app
env_file:
- .env.dev
请注意,如果 .env
文件存在于当前上下文中,则它会默认加载。所以你只需要使用 env_file
,如果它的名称不同或者在不同的文件夹中。
对于3.8版本,您可以通过以下方式进行
version: '3.8'
services:
my-app:
build: .
ports:
- ${CONTAINER_PORT}:${PORT} # for example
env_file: .env
container_name: my-app-${NODE_ENV} # for example
environment:
MYSQL_DATABASE: ${DB_NAME} # for example
my_app_version: ${MY_APP_VER} # for your case
中查找更多信息
此外,您可以在 Dockerfile 和 docker-compose here
中找到有关环境变量用法的更多信息
我有一个 docker 组合设置,我想在我的 docker 文件中使用 env 文件中的环境变量。我想在构建期间使用这些变量,因为我使用此版本号连接字符串以形成下载 URL.
这里我写了一部分我正在使用的文件只是为了把重点放在我的问题上。
.env
MY_APP_VER=v1.2.3
docker-compose.yml
version: "2"
services:
my-app:
build: .
container_name: my_app
environment:
- my_app_version=$MY_APP_VER
Docker 文件
FROM scratch
ENV my_app_ver=$my_app_version
RUN echo $my_app_ver
我检查了各种来源,但都没有成功。我不确定这是否可能,或者我是否使用了错误的语法(我应该使用引号还是不使用例如“$my_app_ver”或大括号 ${my_app_ver}).
docker-compose 中有一个名为 env-file
的选项,您可以利用它:https://docs.docker.com/compose/environment-variables/#the-env_file-configuration-option
version: "3"
services:
my-app:
build: .
container_name: my_app
env_file:
- .env.dev
请注意,如果 .env
文件存在于当前上下文中,则它会默认加载。所以你只需要使用 env_file
,如果它的名称不同或者在不同的文件夹中。
对于3.8版本,您可以通过以下方式进行
version: '3.8'
services:
my-app:
build: .
ports:
- ${CONTAINER_PORT}:${PORT} # for example
env_file: .env
container_name: my-app-${NODE_ENV} # for example
environment:
MYSQL_DATABASE: ${DB_NAME} # for example
my_app_version: ${MY_APP_VER} # for your case
中查找更多信息
此外,您可以在 Dockerfile 和 docker-compose here
中找到有关环境变量用法的更多信息