Я пытаюсь запустить следующий yml-файл docker-compose в рабочем процессе github, но получаю сообщение об ошибке
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
нигде не создавалось.
Вам нужно использовать в качестве источника в команде tag построенный результат сборки docker-compose.
Поскольку вы указываете в своем сочинении image: backend_prod
, ваше изображение будет названо этим.
Попробуйте изменить изображение в докере на что-то вроде:
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 здесь.
Можете ли вы отредактировать свой вопрос с помощью файла ci.yaml?
Я редактирую свой ответ. Я не проверял, но вы можете иметь представление
Да! это дало мне некоторое направление. Хитрость заключалась в том, чтобы просто поменять значение изображения в ci.yml image: "${WEB_IMAGE}"
и оставить все остальное без изменений.
Хорошо, если это поможет, пожалуйста, отметьте как ответ, спасибо
Не относится к вашей проблеме, но это бесполезные
echo
s в обратных кавычках