Docker操作的新位置

4

我正在使用这个来操作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(未找到)。

有人知道新位置吗?


1
他们最近必须已经完全删除了actions/docker仓库。它曾被归档一段时间,并附有我在回答中发布的消息。 - peterevans
1个回答

10
actions/docker 操作已经被弃用。在完全删除之前,该存储库已归档,并附带以下消息。

此操作已被弃用,建议使用新的 YAML 语言中的 run 脚本步骤运行 docker cli。

因此,推荐使用 run 脚本命令来使用 Docker。官方的起始工作流程展示了构建镜像的简单示例。 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

1
这是在测试期间跟随开发进展、阅读文档以及进行自己的实验的混合体。 - peterevans
1
哇,谢谢你提供的额外的 Github 容器注册表信息!我之前完全不知道!现在我要去学习一下,因为我真的不想为 Docker Hub 私有注册表付费。 - Noitidart
另外一个无关的问题,如果我的代码仓库是私有的,那么我发布到其包注册表的 Docker 镜像会是私有的吗? - Noitidart
1
关于Docker登录,请参考此答案:https://dev59.com/4lUK5IYBdhLWcg3wqBXE 关于软件包注册表,是的,我相信它是这样工作的。如果仓库是私有的,那么软件包也是私有的。 - peterevans
2
登录到 GitHub Package Registry:echo ${{ secrets.GITHUB_TOKEN }} | docker login docker.pkg.github.com -u ${{ github.repository }} --password-stdin - Joe Bowbeer
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接