docker中的python脚本在卷中创建锁定文件

docker中的python脚本在卷中创建锁定文件,python,docker,Python,Docker,我有一个带有python的docker容器和一个装入的卷。该卷包含python脚本和csv等内容。我正在将csv复制到该卷内的子目录中。它正在工作,但文件具有根所有权,并且被锁定,因此无法使用。我需要一个解锁的文件 在docker之外,python脚本执行此操作,创建一个未锁定的文件,而不存在任何权限问题。我试着改变了chmod。但是它不起作用 Dockerfile: FROM python:3.5 ADD entrypoint.sh entrypoint.sh #RUN chmod 755

我有一个带有python的docker容器和一个装入的卷。该卷包含python脚本和csv等内容。我正在将csv复制到该卷内的子目录中。它正在工作,但文件具有根所有权,并且被锁定,因此无法使用。我需要一个解锁的文件

在docker之外,python脚本执行此操作,创建一个未锁定的文件,而不存在任何权限问题。我试着改变了chmod。但是它不起作用

Dockerfile:

FROM python:3.5

ADD entrypoint.sh entrypoint.sh
#RUN chmod 755 entrypoint.sh Also did not work
RUN chmod 777 entrypoint.sh 

ENTRYPOINT ./entrypoint.sh
入口点:

cd volume
python copytest.py
copytest.py

import shutil

src = 'df_gent.csv'
dst = 'gent_copy.csv'

shutil.copy2(src, dst)
docker命令:

sudo docker build -t copytest .
docker run --name copy_test -v /home/user/Desktop/copytest-docker/:/volume -it copytest bash

Docker容器正在使用root用户运行。因此,在copytest.py文件“gent_copy.csv”中执行copy命令后,root将拥有该文件。它在tern中的行为就像锁一样

您可以在Dockerfile中创建与系统上相同的用户。所以文件将与同一用户一起复制

请检查下面的Dockerfile(用本地用户替换XXXXXX)


锁定文件下是什么意思?都是docker下的根目录
FROM python:3.5
ARG local_user=XXXXXX
RUN useradd -ms /bin/bash $local_user

ADD entrypoint.sh entrypoint.sh

RUN chown $local_user:$local_user entrypoint.sh
USER $local_user
RUN chmod 755 entrypoint.sh 

ENTRYPOINT ./entrypoint.sh