这是我的docker文件:
FROM python:3.6.5-alpine3.7
RUN mkdir folder_1
RUN mkdir folder_2
RUN apk --update add build-base libffi-dev openssl-dev python-dev py-
pip p7zip libc6-compat libstdc++
RUN pip install fabric3 boto3 csvsort
EXPOSE <port>
ADD directory/ /
CMD ["python", "scriptname.py"]
应用程序运行一系列步骤,其中一个步骤是将7z文件从folder_1提取到folder_2。它能够找到folder_1和源文件夹,但无法找到folder_2。我登录到该容器以确保该文件夹存在,并且确实存在。
我发现了另一个与类似问题有关的问题:https://serverfault.com/questions/883625/alpine-shell-cant-find-file-in-docker,并根据答案安装了libc6-compat和libstdc ++。
这是失败的代码行:
os.system('7za x ' + source_path + file_name + ' -' +
file_decryption_password +
' -o' + destination_path)
在这里,destination_path是'folder_2 /',而我得到的确切错误是
sh: -ofolder_2/: not found
该命令和docker在我的Mac笔记本电脑上正常工作,而docker在基于Linux的服务器上失败。