如何在 github 操作中从 docker-compose.yml 向 docker 推送命令添加标签
How to add tag to docker push command from docker-compose.yml in github actions
当 docker-compose.yml 文件发生变化(新的主要版本,更改图像标签)。构建运行良好,但是当我尝试推送时,我无法访问图像名称,它默认为标签 latest
,这不是我刚刚构建的。
- name: Build the Docker image
run: docker compose build
- name: Docker push
run: docker push ${{secrets.DOCKER_USER}}/myreponame
我收到错误
Using default tag: latest
The push refers to repository [docker.io/***/myreponame]
tag does not exist: ***/myreponame:latest
Error: Process completed with exit code 1.
我需要以某种方式从 docker-compose.yml 文件中获取标签或完整图像名称:
docker push ${{secrets.DOCKER_USER}}/myreponame:{tag_from_file}
有没有办法在 docker compose 构建命令中或从文件中获取此数据?我不想手动输入数据到 CI/CD.
您可以在 docker-compose 文件中为图像名称添加使用变量替换,例如:
myapp:
image: "${REPO}/myreponame:${tag_from_file}"
并使用 REPO
和 tag_from_file
定义为环境变量进行构建:
- name: Build the Docker image
run: REPO=${{secrets.DOCKER_USER}} tag_from_file=something docker compose build
它应该可以工作。
您还可以使用 Docker 执行的 Github 操作来构建和推送您的镜像:https://github.com/marketplace/actions/build-and-push-docker-images
当 docker-compose.yml 文件发生变化(新的主要版本,更改图像标签)。构建运行良好,但是当我尝试推送时,我无法访问图像名称,它默认为标签 latest
,这不是我刚刚构建的。
- name: Build the Docker image
run: docker compose build
- name: Docker push
run: docker push ${{secrets.DOCKER_USER}}/myreponame
我收到错误
Using default tag: latest
The push refers to repository [docker.io/***/myreponame]
tag does not exist: ***/myreponame:latest
Error: Process completed with exit code 1.
我需要以某种方式从 docker-compose.yml 文件中获取标签或完整图像名称:
docker push ${{secrets.DOCKER_USER}}/myreponame:{tag_from_file}
有没有办法在 docker compose 构建命令中或从文件中获取此数据?我不想手动输入数据到 CI/CD.
您可以在 docker-compose 文件中为图像名称添加使用变量替换,例如:
myapp:
image: "${REPO}/myreponame:${tag_from_file}"
并使用 REPO
和 tag_from_file
定义为环境变量进行构建:
- name: Build the Docker image
run: REPO=${{secrets.DOCKER_USER}} tag_from_file=something docker compose build
它应该可以工作。
您还可以使用 Docker 执行的 Github 操作来构建和推送您的镜像:https://github.com/marketplace/actions/build-and-push-docker-images