我有一部分docker-compose文件
docker-compose.yml
pitchjob-fpm01:
container_name: pitchjob-fpm01
env_file:
- env/base.env
build:
context: ./pitch
dockerfile: PitchjobDockerfile
volumes:
- "/Sites/pitch/pitchjob/:/Sites"
restart: always
depends_on:
- memcached01
- memcached02
links:
- memcached01
- memcached02
extends:
file: "shared/common.yml"
service: pitch-common-env
我的扩展yml文件是compose.yml
version: '2.0'
services:
pitch-common-env:
environment:
APP_VOL_DIR: Sites
WEB_ROOT_FOLDER: web
CONFIG_FOLDER: app/config
APP_NAME: sony_pitch
在pitchjob-fpm01的docker文件中,我有一个像这样的命令PitchjobDockerfile
# Set folder groups
RUN chown -Rf www-data:www-data /$APP_VOL_DIR
但是当我运行命令调出堆栈时docker-compose -f docker-compose-base.yml up --build --force-recreate --remove-orphans
我收到以下错误failed to build: The command '/bin/sh -c chown -Rf www-data:www-data /$APP_VOL_DIR' returned a non-zero code: 1
我猜这是因为它没有$ APP_VOL_DIR,但是为什么这样做,如果docker compose扩展了另一个定义
环境变量
最佳答案
您可以为此使用build-time arguments。
在Dockerfile中定义:
ARG APP_VOL_DIR=app_vol_dir
# Set folder groups
RUN chown -Rf www-data:www-data /$APP_VOL_DIR
然后在docker-compose.yml中将app_vol_dir设置为build参数:
pitchjob-fpm01:
container_name: pitchjob-fpm01
env_file:
- env/base.env
build:
context: ./pitch
dockerfile: PitchjobDockerfile
args:
- app_vol_dir=Sites
关于docker - Docker-compose扩展找不到环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37591158/