docker-compose第二条命令未执行及容器保活问题求助
问题分析与解决方案
一、依赖未安装的问题修复
你的docker-compose配置存在两个核心问题导致依赖未安装:
- 本地目录未挂载到容器:容器内默认没有你的
tests/requirements.txt文件,必须将本地项目目录挂载到容器内对应路径。 - 命令执行的shell环境问题:直接用字符串形式的
command可能无法正确解析&&连接的多命令,需要显式指定shell执行。
修复后的完整docker-compose配置:
version: '3' services: remote_interpreter: image: amazon/aws-glue-libs:glue_libs_3.0.0_image_01 entrypoint: "" command: ["/bin/sh", "-c", "pip3 install --upgrade pip && pip3 install -r /app/tests/requirements.txt && tail -f /dev/null"] volumes: - ./:/app # 将本地当前项目目录挂载到容器内的/app路径
二、让容器保持运行并验证依赖
在命令末尾添加tail -f /dev/null,可让容器完成依赖安装后持续运行。之后你可以通过以下操作验证包是否安装成功:
# 进入运行中的容器 docker-compose -f ./my-file.yaml exec remote_interpreter bash # 查看已安装的Python包 pip3 list
额外注意事项
- 若你的项目结构不同,需调整挂载路径和命令中的
requirements.txt路径,确保容器内路径与本地文件对应。 - 如果遇到权限问题,可在pip命令前添加
sudo(需镜像支持sudo),或调整挂载目录的权限设置。
内容的提问来源于stack exchange,提问作者Jeff
相关产品推荐
相关产品推荐

