为什么我的 docker-compose.yml 文件找不到我的 Dockerfile*end 文件

问题描述 投票:0回答:1

我正在尝试让 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 是:

    project/docker/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 "$@"

预先感谢您的帮助,尽可能少!

python linux bash docker docker-compose
1个回答
0
投票

首先,您可以运行“docker compose up memory_Backend --build”来仅运行您的后端服务并检查哪里出错了。但我相信这可能是因为找不到 Dockerfile(您传递到 docker-compose 的 dockerfile 路径)而出现的问题。 当你在这个文件中运行“docker run”时会发生什么?

© www.soinside.com 2019 - 2024. All rights reserved.