如何在计算引擎 VM 的 Github 操作中拉取 Docker 图像?

How to pull a Docker image in Github actions for a compute engine VM?

我正在使用 GH 操作构建图像并将图像推送到我的 docker 存储库。在完成 setup-gcloud:

之后如何将其拉到 Google 计算引擎上
      steps:
      - name: setup gcloud
        uses: GoogleCloudPlatform/github-actions/setup-gcloud@master
        with:
          version: '290.0.1'
          project_id: ${{ secrets.GCP_PROJECT_ID }}
          service_account_key: ${{ secrets.GCP_SA_KEY }}

我知道 GCE-Github actions and the google/docker-registry. But as my VM is not container-optimized 我想 运行

docker pull [docker-hub-repo] 然后在特定目录中执行 docker-compose up

您可以 install Docker Engine 在多个 Linux 平台上以及在 macOS 和 Windows10 上通过 Docker 桌面。

命令 "docker pull" 默认从 Docker Hub 拉取镜像。您还可以通过指定存储库路径从 desired repository 中提取图像。

您需要 install Docker Compose so that you could run the command "docker-compose up" 来开始编写并运行您的整个应用程序。

我没有意识到显而易见的 gcloud compute ssh 命令就足够了。

- run: gcloud compute ssh --zone $GCE_INSTANCE_ZONE $GCE_INSTANCE --command 'docker login -u [user] -p [password] && docker pull [repository:tag]'

2022 编辑

为了更安全,请使用 Github Secrets。 为避免通过 run 直接使用 SSH 命令,有一项作业 appleboy/ssh-action@master 用于此;

jobs:
  deploy:
    runs-on: [ubuntu-latest]
    steps:

    #Job starts here
    - name: executing remote ssh commands
      uses: appleboy/ssh-action@master
      with:
        host: ${{ secrets.WEBSPACE_HOST }}
        username: ${{ secrets.WEBSPACE_USER }}
        password: ${{ secrets.WEBSPACE_PASS }}

        #Bash commands may be placed line by line here
        script: |
          cd ...
          git pull
          docker-compose up --build --detach