我已经将整个项目导入到 docker 中,并且我得到了
\n\n\n\n\n模块未找到错误
\n
来自我创建的模块之一。
\n\nFROM python:3.8\nWORKDIR /workspace/\nCOPY . /workspace/\nRUN pip install pipenv\nRUN pipenv install --deploy --ignore-pipfile\n#EXPOSE 8000\n#CMD ["pipenv", "run", "python", "/workspace/bin/web.py"]\nRun Code Online (Sandbox Code Playgroud)\n\n我尝试四处寻找答案,但似乎无法使其发挥作用。
\n\n命令:
\n\ndocker build -t atletico .\ndocker run -p 8000:8000 atletico\nRun Code Online (Sandbox Code Playgroud)\n\nDocker 构建:\n https://pastebin.com/FXMrY2En
\n\nTraceback (most recent call last):\n File "/workspace/bin/web.py", line 3, in <module>\n from bin.setup import setup_app\nModuleNotFoundError: No module named \'bin\'\nRun Code Online (Sandbox Code Playgroud)\n\n我的目录的副本:
\n\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Dockerfile\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Pipfile\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Pipfile.lock\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 README.md\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 bin\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __pycache__\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 web.cpython-38.pyc\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 setup.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 web.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 docker-compose.yml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 frio\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __pycache__\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 __init__.cpython-38.pyc\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 app_events.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 config.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 routes\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\nRun Code Online (Sandbox Code Playgroud)\n\ndocker-compose.yml:
\n\nversion: \'3\'\nservices:\n db:\n image: postgres:12\n ports:\n - "5432:5432"\n environment:\n - POSTGRES_USER=postgres\n - POSTGRES_PASSWORD=postgres\n - POSTGRES_DB=test_db\n redis:\n image: "redis:alpine"\n web:\n env_file:\n - .env.local\n build: .\n ports:\n - "8000:8000"\n volumes:\n - .:/workspace\n depends_on:\n - db\n - redis\n command: "pipenv run python /workspace/bin/web.py"\nRun Code Online (Sandbox Code Playgroud)\n
Ken*_*mar 18
所以我终于解决了这个问题。对于那些可能想知道我是如何修复它的人。您需要PYTHONPATH在 或 中Dockerfile定义一个环境变量docker-compose.yml。