泊坞窗操作的新位置
Posted
技术标签:
【中文标题】泊坞窗操作的新位置【英文标题】:New location of docker actions 【发布时间】:2020-02-09 12:45:56 【问题描述】:我在 docker 上使用这个:
- name: Build container image
uses: actions/docker/cli@master
with:
///// removed
- name: Docker Login
uses: actions/docker/login@master
env:
///// removed
但是 github.com/actions/docker 似乎不再存在了。
我的构建是 404:
未能下载操作“https://api.github.com/repos/actions/docker/tarball/master”。错误响应状态码不表示成功:404(未找到)。
有人知道新地点吗?
【问题讨论】:
他们一定是最近才完全删除了actions/docker
存储库。它与我在答案中发布的消息一起存档了一段时间。
【参考方案1】:
actions/docker
操作现已弃用。在完全删除之前,该存储库已归档并显示以下消息。
不推荐使用此操作,而是使用新 YAML 语言中的运行脚本步骤来运行 docker cli。
所以推荐使用 Docker 的方式是使用run
脚本命令。官方的入门工作流程展示了一个构建镜像的简单示例。
https://github.com/actions/starter-workflows/blob/master/ci/docker-image.yml
有关 Docker 映像发布的更完整示例,请参阅以下工作流程。
对于公共 DockerHub 注册表:
name: my workflow
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Login to DockerHub Registry
run: echo $ secrets.DOCKERHUB_PASSWORD | docker login -u $ secrets.DOCKERHUB_USERNAME --password-stdin
- name: Build the Docker image
run: docker build -t myimage:latest .
- name: Tag the Docker image
run: docker tag myimage:latest myimage:1.0
- name: Push the Docker image to the registry
run: docker push myimage:1.0
对于私有注册表,例如新的 GitHub Package Registry,您还需要在登录时指定主机名并适当标记图像:
name: my workflow
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Login to GitHub Package Registry
run: echo $ secrets.GITHUB_TOKEN | docker login docker.pkg.github.com -u $ github.repository --password-stdin
- name: Build the Docker image
run: docker build -t myimage:latest .
- name: Tag the Docker image
run: docker tag myimage:latest docker.pkg.github.com/username/repository/myimage:1.0
- name: Push the Docker image to the registry
run: docker push docker.pkg.github.com/username/repository/myimage:1.0
【讨论】:
这是在测试期间的后续开发、阅读文档和我自己的实验的混合体。 哇,感谢 github 容器注册表的额外金块!我不知道!现在要去了解一下,因为我真的不想为 docker hub 私有注册表付费。 请您解释一下echo "$ secrets.DOCKER_PASSWORD " | docker login docker.pkg.github.com -u "$ secrets.DOCKER_USERNAME " --password-stdin
。我一直在做docker login -u "foo_user" -p "foo_pw"
。有什么区别?
查看这个关于 docker login 的答案:***.com/questions/51489359/… 关于包注册表。是的,我相信这就是它的工作原理。如果 repo 是私有的,那么包也是私有的。
登录 GitHub 包注册表:echo $ secrets.GITHUB_TOKEN | docker login docker.pkg.github.com -u $ github.repository --password-stdin
以上是关于泊坞窗操作的新位置的主要内容,如果未能解决你的问题,请参考以下文章
sh [下载并设置HDF 3.0泊坞窗容器]使用此脚本下载并设置HDF泊坞窗容器#hdf #docker #setup#hdf30