gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 15:44:08 25 4
gpt4 key购买 nike

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

在 docker 之外,python 脚本执行此操作,创建一个没有任何权限问题的解锁文件。我尝试更改 chmod。但它不起作用。

docker 文件:

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

复制测试.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”将由 root 拥有。哪个 tern 表现为锁。

您可以像在您的系统上一样在 Dockerfile 中创建用户。所以文件将被同一个用户复制。

请检查以下 Dockerfile(将 XXXXXX 替换为您的本地用户)。

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

关于docker中的python脚本在卷中创建锁定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51101126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com