在 github 操作中使用特定的 docker 版本
Using a specific docker version in github actions
我想使用 github 操作来测试 sbt-native-packager docker 集成,它从 Dockerfiles 构建 docker 图像。
问题是 github 操作似乎使用旧版本或自定义 docker 版本。 3.0.8
被检测为版本。请参阅 a failed integration test run,其中指出
[1] The detected Docker version DockerVersion(3,0,8,None) is not compatible with DockerPermissionStrategy.MultiStage
我想使用最新的 docker 版本 19.x,这样我们就可以测试所有功能。理想情况下,我可以为不同的测试场景设置不同的 docker 版本,但如果能有这样的版本就好了。
更新
的输出
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
提前致谢,
向
您可以使用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
我应该补充一点,作业中的每个 步骤 都可以访问您安装的版本。如果您需要在另一个 作业 中使用 docker,则必须为新的计算资源安装 docker。
事实证明,server版本是任意的,而api版本是要查找的相关版本。
相关资源
我想使用 github 操作来测试 sbt-native-packager docker 集成,它从 Dockerfiles 构建 docker 图像。
问题是 github 操作似乎使用旧版本或自定义 docker 版本。 3.0.8
被检测为版本。请参阅 a failed integration test run,其中指出
[1] The detected Docker version DockerVersion(3,0,8,None) is not compatible with DockerPermissionStrategy.MultiStage
我想使用最新的 docker 版本 19.x,这样我们就可以测试所有功能。理想情况下,我可以为不同的测试场景设置不同的 docker 版本,但如果能有这样的版本就好了。
更新
的输出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
提前致谢, 向
您可以使用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
我应该补充一点,作业中的每个 步骤 都可以访问您安装的版本。如果您需要在另一个 作业 中使用 docker,则必须为新的计算资源安装 docker。
事实证明,server版本是任意的,而api版本是要查找的相关版本。
相关资源