我有以下 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 run -p 8080:8080 com-ifx:latest
sudo docker build --build-arg SERVER_CONTEXT_PATH=mywar -t com-ifx:latest
并运行映像
复制的战争文件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
就我而言,我使用了您的脚本中的两个更改。它们是:
在我使用的 Dokerfile 中,格式$VARIABLE或"$VARIABLE"来引用变量。
在 .drone.yml 文件中,变量被指定为
build_args_from_env: [ 变量 ]
这对我有用