如何在 yml 文件中的 Github Action 中部署 docker 容器?

Posted

技术标签:

【中文标题】如何在 yml 文件中的 Github Action 中部署 docker 容器?【英文标题】:How to deploy docker container in Github Action in yml file? 【发布时间】:2021-11-22 07:59:18 【问题描述】:

我在工作流中的 github 中有 yml 文件,该文件中有一个 docker 映像构建并推送到 docker hub。

现在我们要执行该图像并在同一 yml 文件的 github 操作工作流中作为容器运行。

怎么做?

这是 yml 文件

name: vampi_docker

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: docker login
      env:
#        Docker_Hub_Username: xxxxxx
#        Docker_Hub_Password: xxxxxx
        DOCKER_USER: $secrets.DOCKER_USER
        DOCKER_PASSWORD: $secrets.DOCKER_PASSWORD
        repository: test/vampi_docker:latest
        tags: latest, $ secrets.DOCKER_TOKEN 
      run: |
        docker login -u $DOCKER_USER -p $DOCKER_PASSWORD
        
    - name: Build the Vampi Docker image
      run: |
        python -m pip install --upgrade pip
        pip install -r requirements.txt
        docker build . --file Dockerfile --tag test/vampi_docker:latest
#        docker build . --file Dockerfile --tag vampi_docker:latest
        
    - name: List images
      run: docker images  
      
    - name: Docker Push
#      run: docker tag vampi_docker:latest $secrets.DOCKER_USER/vampi_docker:latest      
      run: docker push test/vampi_docker:latest

在 Docker push 之后,下一个命令应该有 Docker 容器,即在其中构建 docker 容器。

【问题讨论】:

【参考方案1】:

您已经将镜像推送到远程,因此下一步可以使用run 运行包含该镜像的容器,它将从 dockerhub 或私有注册表获取镜像:

- name: Run a container
  run: docker run --rm -it rashidmd/vampi_docker:latest

【讨论】:

谢谢我解决了

以上是关于如何在 yml 文件中的 Github Action 中部署 docker 容器?的主要内容,如果未能解决你的问题,请参考以下文章

.yml文件是啥,怎么书写?

带有 Github Actions 的 env 文件

yml文件读写

如何将存储库中的文件复制到用于作业的 Docker 容器中,在 gitlab-ci.yml

使用 GitHub GraphQL 搜索带有 *.yml 文件的所有存储库

如何使用 yml 文件中的 bash 命令将所有文件复制到新目录?