Когда вы используете CMD ["python", "/app/16-reading_and_writing_file.py"]
, ваш текущий рабочий каталог - /
.
Так что output.txt
файл будет создан в /
, а не в /app
Так что лучше использовать WORKDIR
в вашем Dockerfile
, чтобы упомянуть ваш рабочий каталог
FROM centos
RUN yum install -y https://centos7.iuscommunity.org/ius-release.rpm
RUN yum install -y python36u python36u-libs python36u-devel python36u-pip
RUN ln -sf /usr/bin/python3.6 /usr/bin/python
RUN mkdir /app
WORKDIR /app
COPY 16-reading_and_writing_file.py .
RUN python --version
CMD ["python", "16-reading_and_writing_file.py"]
Теперь файл будет создан под /app
OR
В своем коде Python вы можете использовать модуль os для формирования пути
import os
output_file_path = os.path.join(os.path.abspath(__file__), 'output.txt')
target3 = open(output_file_path,'w')
line1 = "Hello"
line2 = "How Are You"
target3.write(line1)
target3.write("\n")
target3.write(line2)
target3.write("\n")
target3.close()
print ("Hello")
Это поможет вам создать output.txt
в том же каталоге, где находится 16-reading_and_writing_file.py , независимо от того, где вы находитесь.