Проблема в моем докер-файле, когда я пытаюсь СКОПИРОВАТЬ

#docker #dockerfile #dockerignore

Вопрос:

У меня есть test_app.sh вот так :

 #! /bin/bash mkdir tempdir mkdir tempdir/templates mkdir tempdir/static cp test_app.py tempdir/. cp -r templates/* tempdir/templates/. cp -r templates/* tempdir/static/. #Création du fichier Dockerfile   #Lancement du build de l'image testapp à partir de Dockerfile sous /tempdir echo "FROM python" gt;gt; tempdir/Dockerfile echo "RUN pip3 install flask" gt;gt; tempdir/Dockerfile echo "COPY ./tempdir/static /home/myapp/static/" gt;gt; tempdir/Dockerfile echo "COPY ./templates /home/myapp/templates/" gt;gt; tempdir/Dockerfile echo "COPY test_app.py /home/myapp/" gt;gt; tempdir/Dockerfile echo "EXPOSE 8080" gt;gt; tempdir/Dockerfile echo "CMD python3 /home/myapp/test_app.py" gt;gt; tempdir/Dockerfile  #Lancement du build de l'image testapp à partir de Dockerfile sous /tempdir cd tempdir docker build -t testapp .  #lancement du container testrunning avec l'image testapp docker run -t -d -p 8080:8080 --name testrunning testapp  #Tester si le container a bien démarré docker ps -a  

Итак, в созданном файле Dockerfile у меня есть это :

 FROM python RUN pip3 install flask COPY ./tempdir/static /home/myapp/static/ COPY ./templates /home/myapp/templates/ COPY test_app.py /home/myapp/ EXPOSE 8080 CMD python3 /home/myapp/test_app.py  

И архитектура моего проекта такова:

 projet_devops_eval ├── tempdir │   ├── Dockerfile │   ├── sample_app.py │   ├── static │   │   └── index.html │   ├── templates │   │   ├── index1.html │   │   ├── index2.html │   │   ├── index3.html │   │   └── index.html │   └── test_app.py ├── templates │   └── index.html ├── test_app.py └── test_app.sh  

но когда я запускаю test_app.sh Я получил эту ошибку:

 Step 3/7 : COPY ./tempdir/static /home/myapp/static/ COPY failed: file not found in build context or excluded by .dockerignore: stat tempdir/static: file does not exist Unable to find image 'testapp:latest' locally docker: Error response from daemon: pull access denied for testapp, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.  

можете ли вы объяснить мне и помочь мне устранить ошибку КОПИРОВАНИЯ, пожалуйста

Комментарии:

1. Путь к файлу должен быть относительно расположения файла Dockerfile. Поскольку файл Dockerfile находится в tempdir, ваш путь должен быть static вместо tempdir/static

2. (Вы также можете docker build tempdir вместо cd tempdir amp;amp; docker build . , что было бы на один шаг короче.)

3. Спасибо вам за ваш ответ !