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

如何创建并推送多服务Docker镜像至Docker Hub?

解决方案:Docker项目打包与Docker Hub推送问题

一、当前构建错误原因

你根目录的Dockerfile报错是因为:

  • COPY compose.yaml /game-app 这行命令会把compose.yaml文件直接复制到容器根目录,命名为/game-app(而非/game-app目录下的文件)。
  • 后续WORKDIR /game-app尝试把一个文件当作工作目录,自然会报错“not a directory”。

即使修复这个错误(比如先RUN mkdir -p /game-app再COPY compose.yaml /game-app/),这种方案也无法满足你的需求——因为这个镜像只包含compose.yaml,没有front和back的代码,朋友拉取后根本无法构建服务。

二、正确的项目打包与推送方案

你的核心需求是让朋友拉取后直接使用完整项目,正确的做法是分别构建前端、后端镜像并推送到Docker Hub,再通过修改后的compose.yaml启动所有服务。

步骤1:构建并推送前端/后端镜像

  • 前端镜像构建与推送:
    进入front目录,执行:

    docker build -t hramos13/game-front:latest .
    docker push hramos13/game-front:latest
    
  • 后端镜像构建与推送:
    进入back目录,执行:

    docker build -t hramos13/game-back:latest .
    docker push hramos13/game-back:latest
    

步骤2:修改compose.yaml

将原来的build配置替换为已推送的镜像地址,同时移除本地代码挂载(镜像已包含完整代码,无需挂载本地目录):

version: "3"
services:
  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: games
    restart: always
    ports:
      - 3306:3306
    volumes:
      # 若朋友需要初始化数据库,请确保他们将seed脚本放在本地./back/prisma/seed目录
      - ./back/prisma/seed:/docker-entrypoint-initdb.d

  api:
    # 替换为你的后端镜像地址
    image: hramos13/game-back:latest
    ports:
      - 3001:3001
    depends_on:
      - db
    restart: always
    environment:
      DATABASE_URL: mysql://root:root@db:3306/games
      JWT_SECRET: 1234567899oiuywrifasdfdufbdsfldsv

  web:
    # 替换为你的前端镜像地址
    image: hramos13/game-front:latest
    ports:
      - 3000:3000
    depends_on:
      - api
    restart: always

步骤3:分享给朋友使用

把修改后的compose.yaml(以及数据库初始化用的seed脚本,若需要)分享给朋友,他们只需:

  1. 确保本地安装了Docker和Docker Compose。
  2. 将compose.yaml和seed脚本放在对应目录(./back/prisma/seed)。
  3. 执行命令启动服务:
    docker-compose up -d
    

三、关于根目录Dockerfile的说明

你使用FROM docker/compose:latest的思路是错误的:

  • 这个镜像的作用是在容器内运行Docker Compose命令,但它依赖宿主机的Docker守护进程(需要挂载/var/run/docker.sock),并非用来打包整个项目。
  • 它无法将你的front、back代码打包进去,朋友拉取后没有源码,根本无法构建服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 13:23:24