在.drone.yml中为docker插件传递构建参数

时间:2018-04-14 06:18:58

标签: docker drone docker-build

我有以下Dockerfile

FROM myabse

ARG SERVER_CONTEXT_PATH=com-ifx

COPY ./hue-com-ifx-front/target-server-side/com-ifx.war /opt/tomcat/webapps/${SERVER_CONTEXT_PATH}.war

CMD ["/opt/tomcat/bin/catalina.sh", "run"]

当我尝试像这样构建docker图像时

sudo docker build --build-arg SERVER_CONTEXT_PATH=mywar -t com-ifx:latest并使用sudo docker run -p 8080:8080 com-ifx:latest

运行图片

复制的war文件为mywar.war

我试图在.drone.yml

中做同样的事情
docker:
    image: plugins/docker
    registry: registry.paas.workslan
    repo: registry.paas.workslan/ifx-prestaging/com-ifx
    build_args: 
      - SERVER_CONTEXT_PATH=mywar
    secrets: [ docker_username, docker_password ]
    tags: latest
    when:
      branch: ticket-*
  docker_publish_feature_branch:
    image: plugins/docker
    registry: registry.paas.workslan
    repo: registry.paas.workslan/ifx-prestaging/com-ifx
    secrets: [ docker_username, docker_password ]
    tags: ${DRONE_COMMIT_BRANCH}
    when:
      branch: [ticket-*]

但战争的名字始终是com-ifx.war。我希望它是mywar.war。我应该如何在.drone.yml

中做到这一点

1 个答案:

答案 0 :(得分:0)

在我的情况下,我使用了脚本中的两个更改。这是:

在我使用的Dokerfile中,使用格式$ VARIABLE或“$ VARIABLE”来引用变量。

在.drone.yml文件中,变量指定为

build_args_from_env:[VARIABLE]

这对我有用