如何在docker compose中运行同一内部版本的多个版本?
TL/DR:我可以在docker compose的如何在docker compose中运行同一内部版本的多个版本?,docker,docker-compose,Docker,Docker Compose,TL/DR:我可以在docker compose的环境指令中使用.env文件变量吗 我有一个Dockerfile,它使用ARG变量根据环境变量复制文件 在我的docker compose中,我想用不同的配置运行此容器的两个版本 是否有一种方法可以在一个.env文件中设置不同的文件路径,并让它生成两次,如下面的示例所示 还是有更聪明的方法来实现这一点 /.env VERSION_1_PATH=./version1/data VERSION_2_PATH=./version2/data /a
环境
指令中使用.env
文件变量吗
我有一个
Dockerfile
,它使用ARG
变量根据环境变量复制文件
在我的docker compose
中,我想用不同的配置运行此容器的两个版本
是否有一种方法可以在一个.env
文件中设置不同的文件路径,并让它生成两次,如下面的示例所示
还是有更聪明的方法来实现这一点
/.env
VERSION_1_PATH=./version1/data
VERSION_2_PATH=./version2/data
/app/Dockerfile
FROM node:latest
ARG APP_PATH # pull this environment variable
COPY $APP_PATH /var/app/ # use it to copy source to the same generic destination
/docker compose.yml
version: "3"
services:
version1:
build: ./app
container_name: version1
env_file:
- '.env'
environment:
APP_PATH: ${VERSION_1_PATH}
version2:
build: ./app
container_name: version2
env_file:
- '.env'
environment:
APP_PATH: ${VERSION_2_PATH}
定义构建时,可以在compose文件中添加
args
,如下所示:
version: '3'
services:
version1:
build:
context: ./app
args:
- APP_PATH=${VERSION_1_PATH}
version2:
build:
context: ./app
args:
- APP_PATH=${VERSION_2_PATH}
如果只想将其作为用于构建,则无需在env_文件中定义.env
。env
可以默认用于docker compose.yml
。而且,环境
也不是用于构建
,而是用于运行容器
第一,仅供参考。此设置是构建时选项(类似于
/configure
标记包含不同的库集)还是运行时配置?
version: '3'
services:
version1:
build:
context: ./app
args:
- APP_PATH=${VERSION_1_PATH}
version2:
build:
context: ./app
args:
- APP_PATH=${VERSION_2_PATH}