来自守护进程的错误响应:没有这样的映像



我试图在github工作流中运行以下docker-compose yml,但我得到

的错误
Error response from daemon: No such image: ghcr.io/whats/app/backend/222243434353535353f

错误发生在标签"点下面的

docker Ci文件

env:
WEB_IMAGE_BASE: ghcr.io/$(echo $GITHUB_REPOSITORY | tr '[:upper:]' '[:lower:]')/backend
WEB_IMAGE: ghcr.io/$(echo $GITHUB_REPOSITORY | tr '[:upper:]' '[:lower:]')/backend:$( echo $GITHUB_SHA )
jobs:
build:
name: Build Docker Images
runs-on: ubuntu-latest
steps:
- name: Prepare images
run: |
echo "WEB_IMAGE=$(echo ${{env.WEB_IMAGE}} )" >> $GITHUB_ENV
echo "WEB_IMAGE_BASE=$(echo ${{env.WEB_IMAGE_BASE}} )" >> $GITHUB_ENV
- name: Build images
run: |
docker-compose -f ci.yml build backend
- name: Tag images
run: |
docker tag ${{ env.WEB_IMAGE }}  ${{ env.WEB_IMAGE_BASE }}:latest

ci。yml是

​version​: ​"​3.9​" 

​services​: 
​  ​backend​: 
​    ​image​: ​backend_prod

我做错了什么,请指出如何解决这个问题?

您试图使用不存在的图像作为源标记和图像。

没有在任何地方创建图像ghcr.io/whats/app/backend/222243434353535353f

你需要在标签命令中使用docker-compose build的构建映像结果作为源代码。

由于您在撰写image: backend_prod中指定了您的图像将以此命名。

尝试将docker组合中的图像更改为如下内容:

version: "3.9"
services:
backend:
build:
context: .
dockerfile: ./backend/dockerfile
image: backend_prod:local

并更改ci文件:

- name: Tag images
run: |
docker tag backend_prod:local ${{ env.WEB_IMAGE_BASE }}:latest

你可以在docker-compose中阅读更多关于image标签的信息

最新更新