Как создать образ из скрипта python (с использованием docker sdk), запущенного в контейнере docker?

#python #docker #dockerfile

#python #docker #dockerfile

Вопрос:

У меня есть два файла dockerfile, test и result. Скрипт python, запущенный в тестовом контейнере, должен создать образ для результата, используя docker sdk. У меня есть оба файла dockerfiles и скрипт python для теста, скопированные в рабочий каталог теста. Однако, когда я получаю сообщение об ошибке в тестовом скрипте, в котором говорится, что такого файла или каталога нет.

Dockerfile теста:

 FROM python:3.7.2-slim
WORKDIR /test
COPY . /test
RUN pip install docker 
ENV PYTHONPATH="$PYTHONPATH:/test"
CMD ["python", "test.py"]
  

test.py:

 // dockerfile of result is named result
import docker
client = docker.from_env()
image = client.images.build(path="/test", dockerfile='result') 
container = client.containers.run(image)
  

Ответ №1:

Когда вы делаете

 COPY . /test
  

Вы копируете все из папки, которая является docker-compose.yml.

Но когда вы находитесь в test.py вероятно, вы находитесь в другой папке. Итак, вам нужно вернуть уровни папки для доступа / тестирования.

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

1. Я не использую Docker Compose

2. Если вы можете попробовать это с помощью docker compose, возможно, это могло бы вам помочь.