Python 3.x docker compose can';我找不到文件
我已经创建了下面的docker文件,目的是在docker compose中运行它Python 3.x docker compose can';我找不到文件,python-3.x,docker,docker-compose,Python 3.x,Docker,Docker Compose,我已经创建了下面的docker文件,目的是在docker compose中运行它 FROM python:3.7.5-slim WORKDIR /usr/src/app RUN python -m pip install boto3 COPY test_cf_create_or_update.py . ENTRYPOINT ["python3"] CMD [@] 现在,在构建之后,当我运行它时,我得到了预期的结果 docker build -t test . docker run -it --
FROM python:3.7.5-slim
WORKDIR /usr/src/app
RUN python -m pip install boto3
COPY test_cf_create_or_update.py .
ENTRYPOINT ["python3"]
CMD [@]
现在,在构建之后,当我运行它时,我得到了预期的结果
docker build -t test .
docker run -it --rm test test_cf_create_or_update.py
然而,如果我真的想通过docker compose重新创建相同的内容,它会说
setup-application_1 | python3: can't open file '/usr/src/app/test_cf_create_or_update.py': [Errno 2] No such file or directory
localstack_setup-application_1 exited with code 2
docker compose的示例如下所示:
setup-application:
build: .
volumes:
- /tmp/localstack/application:/usr/src/app
environment:
- AWS_ACCESS_KEY_ID=dummyaccess
- AWS_SECRET_ACCESS_KEY=dummysecret
- AWS_DEFAULT_REGION=eu-west-1
entrypoint: python3
command: /usr/src/app/test_cf_create_or_update.py
networks:
- my_localstack_network
depends_on:
- localstack
在我做错的地方,有人能帮我吗?两种解决方案:
从docker compose
中删除volume
,然后
FROM python:3.7.5-slim
COPY test_cf_create_or_update.py .
WORKDIR /usr/src/app
RUN python -m pip install boto3
ENTRYPOINT ["python3"]
CMD [@]
FROM python:3.7.5-slim
WORKDIR /usr/src/app
RUN python -m pip install boto3
ENTRYPOINT ["python3"]
CMD [@]
或者将volume
保存在docker compose
中
FROM python:3.7.5-slim
COPY test_cf_create_or_update.py .
WORKDIR /usr/src/app
RUN python -m pip install boto3
ENTRYPOINT ["python3"]
CMD [@]
FROM python:3.7.5-slim
WORKDIR /usr/src/app
RUN python -m pip install boto3
ENTRYPOINT ["python3"]
CMD [@]
确保您的test\cf\u create\u或
位于/tmp/localstack/application
文件夹中。两种解决方案:
从docker compose
中删除volume
,然后
FROM python:3.7.5-slim
COPY test_cf_create_or_update.py .
WORKDIR /usr/src/app
RUN python -m pip install boto3
ENTRYPOINT ["python3"]
CMD [@]
FROM python:3.7.5-slim
WORKDIR /usr/src/app
RUN python -m pip install boto3
ENTRYPOINT ["python3"]
CMD [@]
或者将volume
保存在docker compose
中
FROM python:3.7.5-slim
COPY test_cf_create_or_update.py .
WORKDIR /usr/src/app
RUN python -m pip install boto3
ENTRYPOINT ["python3"]
CMD [@]
FROM python:3.7.5-slim
WORKDIR /usr/src/app
RUN python -m pip install boto3
ENTRYPOINT ["python3"]
CMD [@]
确保您的
test\cf\u create\u或
位于/tmp/localstack/application
文件夹中。您的docker文件中的工作目录已经是usr/src/app。因此,当docker compose文件运行时,您应该已经在该目录中,并且您的命令应该是test\u cf\u create\u或\u update.py。(注意,由于您有一个映射到usr/src/app的卷,主机目录(/tmp/localstack/application)应该包含test\u cf\u create\u或\u update.py)是的,您说对了,我的卷就是问题所在。我映射到另一个位置。谢谢,这就解决了问题。我建议删除卷:
设置,这样您就可以实际运行映像中的代码,而不是用其他内容覆盖映像中的/usr/src/app
目录。您也不需要在docker compose.yml
文件中重复entrypoint:
和命令:
。(我可能会将它们合并到docker文件中的单个CMD
)docker文件中的工作目录已经是usr/src/app。因此,当docker compose文件运行时,您应该已经在该目录中,并且您的命令应该是test\u cf\u create\u或\u update.py。(注意,由于您有一个映射到usr/src/app的卷,主机目录(/tmp/localstack/application)应该包含test\u cf\u create\u或\u update.py)是的,您说对了,我的卷就是问题所在。我映射到另一个位置。谢谢,这就解决了问题。我建议删除卷:
设置,这样您就可以实际运行映像中的代码,而不是用其他内容覆盖映像中的/usr/src/app
目录。您也不需要在docker compose.yml
文件中重复entrypoint:
和命令:
。(我可能会在docker文件中将它们组合成一个CMD
)我从docker compose中删除了卷。@change198好的,你可以先尝试第一种方法。我从docker compose中删除了卷。@change198好的,你可以先尝试第一种方法。