【问题标题】:Using a specific docker version in github actions在 github 操作中使用特定的 docker 版本
【发布时间】:2020-04-09 08:03:36
【问题描述】:

我想使用 github 操作来测试 sbt-native-packager docker 集成,它从 Dockerfiles 构建 docker 映像。

问题在于 github 操作似乎使用旧的或自定义的 docker 版本。 3.0.8 被检测为版本。请参阅a failed integration test run,其中指出

[1] 检测到的Docker版本DockerVersion(3,0,8,None)与DockerPermissionStrategy.MultiStage不兼容

我想使用最新的 docker 版本 19.x,它允许我们测试所有功能。理想情况下,我可以为不同的测试场景设置不同的 docker 版本,但这只是很好。

更新

my debug docker github action的输出

docker version
Client:
 Version:           3.0.8
 API version:       1.40
 Go version:        go1.12.10
 Git commit:        2355349d
 Built:             Wed Oct 23 17:47:59 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          3.0.8
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.10
  Git commit:       adfac69
  Built:            Wed Oct 23 17:54:47 2019
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.2.10
  GitCommit:        b34a5c8af56e510852c35414db4c1f4fa6172339
 runc:
  Version:          1.0.0-rc8+dev
  GitCommit:        3e425f80a8c931f88e6d94a8c831b9d5aa481657
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

docker --version

Docker version 3.0.8, build 2355349d

提前致谢, 渚

【问题讨论】:

标签: docker sbt-native-packager github-actions


【解决方案1】:

您可以使用Ubuntu安装方式安装最新版本的docker!

在您的工作流程中,设置 VM 以安装 docker,然后检查版本。 I've verified it in this workflow 并在此处发布了 YAML:

name: Check Docker Version

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - name: Check Docker Version
      run: docker --version
    - name: Install Latest Docker
      run: |
        curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
        sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu  $(lsb_release -cs)  stable"
        sudo apt-get update
        sudo apt-get install docker-ce
    - name: Check Docker Version
      run: docker --version

每次构建都必须安装docker 可能会很乏味,但至少您可以通过这种方式控制版本。 :D

我应该补充一点,作业中的每个步骤都可以访问您安装的版本。如果您需要在另一个 job 中使用 docker,则必须为新的计算资源安装 docker。

【讨论】:

    【解决方案2】:

    事实证明 server 版本是任意的,而 api 版本是要查找的相关版本。

    相关资源

    【讨论】:

    • 那么现在跑步者中的相关版本是什么?
    猜你喜欢
    • 1970-01-01
    • 2020-07-07
    • 2021-03-01
    • 2022-10-02
    • 2021-04-11
    • 2020-08-09
    • 1970-01-01
    • 2012-02-09
    • 2022-09-23
    相关资源
    最近更新 更多