相关疑难解决方法(0)

Docker文件在docker compose build上传递环境

我写了一个Dockerfile使用两个参数:

FROM jessie
MAINTAINER Zeinab Abbasimazar
#Build Arguments
ARG REP_USER
ARG REP_PASS
# Build
RUN echo 'REP_USER:'$REP_USER', REP_PASS:'$REP_PASS
Run Code Online (Sandbox Code Playgroud)

我写了一个docker-compose.ymlfor build:

version: "2"
services:
  ui:
    build:
      context: .
      dockerfile: Dockerfile
      args:
        REP_USER: $REP_USER
        REP_PASS: $REP_PASS
Run Code Online (Sandbox Code Playgroud)

我不想直接在compose文件中定义这些参数,所以我尝试在docker compose build期间发送它们:

REP_USER=myusername REP_PASS=mypassword docker-compose build
Run Code Online (Sandbox Code Playgroud)

哪个没用.我把我Dockerfile改为使用这些参数作为环境变量; 所以我删除了ARG行:

FROM jessie
MAINTAINER Zeinab Abbasimazar
# Build
RUN echo 'REP_USER:'$REP_USER', REP_PASS:'$REP_PASS
Run Code Online (Sandbox Code Playgroud)

而且docker-compose.yml:

version: "2"
  services:
    ui:
      build:
        context: .
        dockerfile: Dockerfile
Run Code Online (Sandbox Code Playgroud)

REP_USER=myusername REP_PASS=mypassword docker-compose build; …

arguments environment-variables docker dockerfile docker-compose

5
推荐指数
1
解决办法
1969
查看次数