如何从GitHub动作传递一个变量到Docker容器?

rta7y2nd  于 2023-01-29  发布在  Docker
关注(0)|答案(2)|浏览(150)

当我推送一个带有标签的提交时,docker/build-push-action@v1 GitHub Actions会自动构建一个Docker容器,标签表示版本号,我想在应用程序中显示它。
以下是我的工作流程:

- name: Push to Docker Hub - develop
  uses: docker/build-push-action@v1
  with:
    repository: my_repo/my_image
    path: frontend/   
    username: ${{ secrets.DOCKER_USERNAME }}
    password: ${{ secrets.DOCKER_PASSWORD }}
    tags: develop 
    args: SOFTWARE_VERSION=${{ steps.vars.outputs.tag }}

此时,变量SOFTWARE_VERSION应该在Dockerfile中可用,对吗?
在我的Dockerfile中,我设置:

ARG SOFTWARE_VERSION
ENV SOFTWARE_VERSION ${SOFTWARE_VERSION}

在容器内部,变量有一个空值。如何正确处理?
我不知道这是否重要,但我使用docker-compose运行容器。

wfveoks0

wfveoks01#

您正在使用args传递参数。
但是,https://github.com/docker/build-push-action@v1提供了构建参数和@v3构建参数。
你应该为你需要使用的版本做出相应的选择。IMO,你应该选择最新的版本。

yzckvree

yzckvree2#

转到您的设置-〉秘密和变量
添加两个秘密
DOCKERHUB_USERNAME您在DockerHub上的用户名DOCKERHUB_TOKEN这是令牌,您可以从DockerHub获取它
必须将此添加到生成和推送之前

— name: Login to DockerHub
   if: GitHub.event_name != 'pull_request'
   uses: docker/login-action@v1
   with:
     username: ${{ secrets.DOCKERHUB_USERNAME }}
     password: ${{ secrets.DOCKERHUB_TOKEN }}

相关问题