You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker中entrypoint.sh缺失导致movies服务无法启动求助

问题:Docker容器中entrypoint.sh文件未找到导致movies服务无法启动

背景

正在学习TestDriven.io的Django TDD课程,卡在pytest配置环节。启动Docker容器后(localhost显示安装正常),出现报错:service "movies" is not running。进一步排查发现entrypoint.sh文件未被成功复制到容器中,触发"文件未找到"错误。

环境配置

文件夹结构

文件夹结构

docker-compose.yaml 配置

# version: '3.8'

services:
  movies:
    build: ./TestDrivenIO
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - ./TestDrivenIO/:/usr/src/TestDrivenIO/
    ports:
      - 8009:8000
    env_file:
      - ./TestDrivenIO/.env.dev
    depends_on:
      - movies-db
  movies-db:
    image: postgres:15
    volumes:  # 创建卷并将目录绑定到容器
      - postgres_data:/var/lib/postgresql/data/
    environment:  # 添加环境变量定义默认数据库及凭据
      - POSTGRES_USER=movies
      - POSTGRES_PASSWORD=movies
      - POSTGRES_DB=movies_dev

volumes:
  postgres_data:

Dockerfile 配置

# 拉取官方基础镜像
FROM python:3.11.2-slim-buster

# 设置工作目录
WORKDIR /usr/src/TestDrivenIO

# 设置环境变量
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

# 更新
# 安装系统依赖
RUN apt-get update \
  && apt-get -y install netcat gcc postgresql \
  && apt-get clean

# 安装依赖
RUN pip install --upgrade pip
COPY ./requirements.txt .
RUN pip install -r requirements.txt

# 新增
# 复制entrypoint.sh
COPY ./entrypoint.sh /usr/src/TestDrivenIO/entrypoint.sh
RUN chmod +x /usr/src/TestDrivenIO/entrypoint.sh

# 添加应用代码
COPY . .

# 新增
# 运行entrypoint.sh
ENTRYPOINT ["/usr/src/TestDrivenIO/entrypoint.sh"]

排查信息

  • Docker进程状态:docker ps输出
  • 触发的错误:文件未找到错误

求助

如何定位并解决entrypoint.sh未被成功复制到容器中的问题?


内容的提问来源于stack exchange,提问作者ProsperousHeart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 06:45:15