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

Docker-Compose无法找到Entrypoint DLL但Dockerfile单独运行正常

解决Docker Compose运行.NET项目时找不到Activities.dll的问题

核心问题分析

  • Dockerfile路径配置错误:在activities服务的build配置中,context已经设为./Activities(项目根目录下的Activities文件夹),此时dockerfile路径应直接写Dockerfile,而非./Activities/Dockerfile——后者会在./Activities/Activities/目录下查找Dockerfile,显然不存在,导致构建过程未正确执行,生成的镜像内容异常。
  • 不必要的Volume挂载覆盖应用文件:配置中的volumes: - /app:/app会将主机的/app目录(Linux环境)挂载到容器的/app目录,直接覆盖了Docker构建阶段复制到容器内的已发布应用文件,这是找不到Activities.dll的直接原因。

修正后的docker-compose.yml

version: '3.9'

services:           
  redis:
    image: redis
    restart: unless-stopped
    ports: 
      - "6379:6379"
    networks:
      - mynetwork
      
  activities:
    build:
      context: ./Activities
      dockerfile: Dockerfile  # 修正Dockerfile路径
    # 移除覆盖/app的volume配置
    networks:
      - mynetwork
    depends_on:
      - redis      

networks:
    mynetwork:
        driver: bridge

开发环境热重载配置(可选)

如果需要开发时的代码热重载,不要直接挂载/app目录,可改为挂载项目源码目录到容器的构建目录,同时调整启动逻辑(比如用dotnet run替代发布后的dll启动)。示例挂载配置:

volumes:
  - ./Activities:/src/Activities

重新构建运行

执行命令清理旧镜像并重新构建:

docker-compose down --rmi local
docker-compose up --build

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 11:52:34