Передача аргументов сборки в.drone.yml для плагина Docker

У меня есть следующий 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"]

Когда я пытаюсь создать образ докера, как это

sudo docker build --build-arg SERVER_CONTEXT_PATH=mywar -t com-ifx:latest и запустить изображение с помощью sudo docker run -p 8080:8080 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

1 ответ

В моем случае я использовал два изменения из вашего скрипта. Которые:

В Dokerfile я использовал формат $VARIABLE или "$VARIABLE" для ссылки на переменную.

А в файле.drone.yml переменная указана как

build_args_from_env: [ VARIABLE ]

Это работает для меня

Другие вопросы по тегам