Почему мой файл docker-compose.yml не находит мой файл Dockerfile*end

Я пытаюсь запустить docker-контейнер из моего файла docker-compose:

    version: '3'
    
    services:
      memory_Backend:
        build:
          context: ./
          dockerfile: ./project/docker/DockerfileBackend
        image: memoryapi_ad_img
        volumes:
          - ./:/var/lib
        ports:
          - 15555:25555
    
      memory_Frontend:
        build:
          context: ./
          dockerfile: ./project/docker/DockerfileFrontend
        image: memorywebsite_ad_img
        volumes:
          - ./:/var/lib
        ports:
          - 15556:25556

но это дает мне


    WARN[0000] /home/dube_arthur/tp4startingpoint/docker-compose.yml: `version` is obsolete 
    [+] Running 2/2
     ! memory_Backend Warning  pull access denied for memoryapi_ad_img, repository does not exist or may require 'docker login': denied: requested access to the resource is denied                                                            0.8s 
     ! memory_Frontend Warning pull access denied for memorywebsite_ad_img, repository does not exist or may require 'docker login': denied: requested access to the resource is denied                                                        0.8s 
    [+] Building 0.2s (4/4) FINISHED                                                                                                                                                                                                  docker:default
     => [bookapi_frontend internal] load build definition from DockerfileFrontend                                                                                                                                                               0.1s
     => => transferring dockerfile: 2B                                                                                                                                                                                                          0.0s
     => [bookapi_frontend internal] load .dockerignore                                                                                                                                                                                          0.0s
     => => transferring context: 2B                                                                                                                                                                                                             0.0s
     => [bookapi_backend internal] load build definition from DockerfileBackend                                                                                                                                                                 0.1s
     => => transferring dockerfile: 2B                                                                                                                                                                                                          0.1s
     => [bookapi_backend internal] load .dockerignore                                                                                                                                                                                           0.1s
     => => transferring context: 2B                                                                                                                                                                                                             0.1s
    failed to solve: failed to read dockerfile: open /var/snap/docker/common/var-lib-docker/tmp/buildkit-mount2955977944/DockerfileFrontend: no such file or directory   

ошибка

Но мои DockerfileFrontEnd и DockerfileBackEnd находятся в /project/docker/

а ещё они выглядят вот так


    FROM demers/python420w4a
    COPY ./requirements.txt /
    RUN pip3 install -r /requirements.txt
    RUN apt-get update -y
    RUN apt-get install -y xxd
    WORKDIR /var/lib
    CMD ["./run.sh", "./project/main/memoryapi.py", "25555"]

и мой DockerfileFrontEnd:

    FROM demers/python420w4a
    COPY ./requirements.txt /
    RUN pip3 install -r /requirements.txt
    RUN apt-get update -y
    RUN apt-get install -y xxd
    WORKDIR /var/lib
    CMD ["./run.sh", "./project/app/memoryfront.py", "25556"]

также мой файл startDocker.sh:


    #!/bin/bash
    
    vol_name=memory_ad_vol
    api_cont_name=memoryapi_ad_cnt
    api_image_name=memoryapi_ad_img
    website_cont_name=memorywebsite_ad_cnt
    website_image_name=memorywebsite_ad_img
    
    echo "Début du lancement de l'api et du Site Web dans Docker"
    echo "Le nom pour l'image de l'api: $api_image_name"
    echo "Le nom pour l'image du Site Web: $website_image_name"
    echo "Le nom du volume où vont ce trouver les images et conteneurs: $vol_name"
    echo "Le nom pour le conteneur de l'api: $api_cont_name"
    echo "Le nom pour le conteneur du Site Web: $website_cont_name"
    
    ###CLEANUP
    echo "Stoping everything"
    docker-compose -f docker-compose.yml --project-directory . down
    
    
    ###REBUILD
    echo "Creating everything"
    docker-compose -f docker-compose.yml --project-directory . up -d

и, наконец, вот мой файл run.sh


    #!/bin/bash
    
    export PYTHONPATH=$PWD/project/
    echo python path is: 
    echo $PYTHONPATH
    
    echo "Launching program"
    echo $@
    python3 "$@"

Заранее спасибо за помощь, пусть и минимальную!


Информация Редактировать 1:

  1. я нахожусь в каталоге /tp4startingpoint/ в моей виртуальной машине Linux
  2. я не использую docker-compose напрямую, а использую свой скрипт ./startDocker.sh, чтобы сделать всю работу за меня.

Можете ли вы добавить информацию о том, в каком каталоге вы находитесь и какую команду docker compose используете, пожалуйста?

Hans Kilian 23.04.2024 21:22
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
555
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Во-первых, вы можете запустить «docker compose up Memory_Backend --build», чтобы запустить только внутреннюю службу и проверить, где ошибка. Но я считаю, что проблема может заключаться в том, что вы не можете найти свой Dockerfile — путь к файлу dockerfile, который вы передали в docker-compose. Что произойдет, если вы запустите «docker run» в этих файлах?

Спасибо! с помощью инструкций, которые вы мне дали, я нашел проблему!

LADsy8 24.04.2024 18:54
Ответ принят как подходящий

Мой путь к файлу dockerfile в файле docker-compose.yml называется .../DockerfileBackend и Frontend.

имена моих файлов... FrontEnd и BackEnd..

только что понял это, следуя инструкциям @Lucas Begnini, а также изменив их в нижнем регистре, поскольку запуск Docker (команда) не принимает имена в верхнем регистре, я думаю

    docker: invalid reference format: repository name (project/docker/DockerfileBackend) must be lowercase.
See 'docker run --help'.

docker-compose.yml: version устарело"

Поскольку Docker сделал эту строку версии устаревшей, удалите эту строку из файла docker-compose.yml, который, скорее всего, вызывает эту проблему.

Другие вопросы по теме

Похожие вопросы

Pandas объединяется в ближайшую дату с учетом группировки
Проблема с отображением значений из другой коллекции из Firestore
Как я могу устранить эту ошибку: ValueError: имена функций должны соответствовать переданным
Регулярное выражение Python для получения данных и пространства только внутри вложенной скобки
Получение сообщений Twilio с помощью короткого кода в веб-перехватчике вместо номера телефона
Я хочу написать программу, которая вводит число в качестве входных данных, пока это входное значение не равно -1
Изменить шрифт цветовой панели matplotlib и отметок меток?
AttributeError: объект типа «Задача» не имеет атрибута «модели»
Почему возникает ошибка «TypeError: Grouper.__init__() получил неожиданный аргумент ключевого слова «base»?
Есть ли способ сгруппировать данные по значению в одном столбце, чтобы получить сумму содержимого в другом столбце в пандах?