python - Dockerfile 中的 WORKDIR 指令在容器化 Python 应用程序时无效
问题描述
我有以下 Dockerfile 来容器化 Python 应用程序:
FROM python:3.8-slim
WORKDIR /app
COPY ./simple_http_server.py .
CMD [ "python", "./simple_http_server.py" ]
我使用以下命令运行:
docker run -d -p 5000:8000 simple_http_server
它运行良好。docker ps -a
显示容器已启动n
几秒钟,容器 id 为xyz
. 然后我附加到容器以使用命令检查容器内部
docker exec -i -t xyz /bin/bash
一旦进入容器,执行pwd
命令会显示它在/code
目录中。
root@3df086098bf2:/code# pwd
/code
事实上,WORKDIR /app
上面的指令似乎完全没有效果。我哪里都看不到/app
。
为什么WORKDIR
没有效果以及如何修复的解释是什么?
解决方案
您是否在更新后重新构建了映像WORKDIR /app
,这可能是因为您使用WORKDIR /code
.
尝试:
docker build -t simple_http_server .
然后:
docker run -dp 5000:8000 simple_http_server
推荐阅读
- sql - SQL Group by,但如果值相同则允许重复
- dart - 使用 Dart 中的 map() 等内置方法将嵌套列表(二维列表)转换为一个元素列表
- c++ - 重载索引运算符在 C++ 中不起作用
- android - 将回收站视图中显示的选中复选框的项目保存在列表中
- docker - 如何在 docker 上的 juypter 上的 pyspark 上的 spark 上启动 graphframes?
- javascript - React Material-UI 获取检查的项目列表
- javascript - 如何在不复制片段的情况下传递道具
- python - 如何在 python 中使用多个参数从 API 端点正确获取数据?
- java - 如何计算 Java TCP 服务器/客户端程序中第一个和最后一个连接之间的时间
- r - R 包中不需要的文件