如何使用GitHub软件包中的Docker镜像?

时间:2020-01-31 02:17:39

标签: docker github-actions

我在.github/workflows/main.yaml上有此代码

window.top.location.href = "http://www.example.com"; 

这项工作的主要思想是在容器模式下运行所有​​步骤。不在Linux主机模式下。

在同一存储库下,我有一个名为ruby-rimy-2.6.3的公共Docker映像。由于它不是在DockerHub上公开托管的,所以我找不到一种以编程方式向GitHub Packages / Registry进行身份验证的方法。

我确实尝试了不同的语法(请参见下面的代码),但是没有用。

# .github/workflows/main.yaml
name: CI Workflow

on: [push]

jobs:
  rspec-job:
    runs-on: ubuntu-latest
    env:
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    container:
      image: I-stucked-here
      volumes:
        - /vendor/bundle
    steps:
      - code omitted for brevity

在文档中,GitHub表示# .github/workflows/main.yaml name: CI Workflow on: [push] jobs: rspec-job: runs-on: ubuntu-latest env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} container: image: docker://docker.pkg.github.com/zulhfreelancer/rimy/ruby-rimy-2.6.3:latest volumes: - /vendor/bundle steps: - code omitted for brevity 在作业运行时可用。我如何使用此GITHUB_TOKEN环境变量在其上运行类似GITHUB_TOKEN的内容 docker login部分,以便作业能够拉出图像?

使用GitHub个人令牌对我来说不是一种选择,因为在将相同的内容应用于我的GitHub组织之前,该存储库只是我的实验存储库。我不想将我的个人令牌放在组织的存储库环境变量/秘密下,而这只会将我的个人令牌公开给我的同事。

1 个答案:

答案 0 :(得分:0)

您无需使用import pandas as pd import os import glob path = '/path/to/my/files/' filelist = glob.glob(path + "/*.csv") frame = pd.concat([pd.read_csv(file,names=['name', 'product', 'quantity']) for file in filelist]) 指令即可在容器中运行测试。

GitHub Actions主机安装了docker和docker-compose。我这样做的方法是在我的存储库中有一个container,其中包括一个运行测试的“服务”。然后,您的工作流程需要执行docker-compose.yml并只需运行docker login命令。

请注意,此方法的优点在于,您的测试在您自己的计算机和CI机器上执行的方式完全相同。完全相同的步骤。

遵循以下原则:

docker-compose run test

我正在使用DockerHub进行相同的操作,非常轻松且成功。

当然,如果您不想使用docker-compose,在登录步骤中正确登录后,仍然可以使用任何普通的name: Test on: pull_request: push: { branches: master } jobs: test: name: Run test suite runs-on: ubuntu-latest env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - name: Checkout code uses: actions/checkout@v2 - name: Docker login run: echo ${GITHUB_TOKEN} | docker login -u ${GITHUB_ACTOR} --password-stdin docker.pkg.github.com - name: Build docker images run: docker-compose build - name: Run tests run: docker-compose run test 命令。

我不确定docker run ...命令是否可以正常使用,请参阅以下内容进行更深入的讨论: