#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. Спасибо вам за ваш ответ !