-
Notifications
You must be signed in to change notification settings - Fork 11.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
优化 docker 构建的镜像文件大小,添加自动化构建 #42
Conversation
Nice ~ |
我是小白,不太了解 |
@0x-jerry @marlkiller 或者我开个权限? |
还有一个问题是,理论上后端和前端先各自运行 |
@wangdashuaihenshuai @0x-jerry @marlkiller 三位大佬有何建议 |
build_docker.yml 的 images 配置成自己的账户下就可以 这个 Dockerfile 构建出来的 image 要小很多, node_modules 是放一块的. 用这个 pr 就行 |
@Chanzhaoyu, marlkiller 说的对的,就是创建一个 dockerhub 账号,然后把用户名和生成的 token 放到 github 的 secrets 里面。还需要改一下推送到 dockerhub 的仓库名,也就是下面这里列举的 - name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: 0xjerry/chatgpt-web # 需要修改,格式 `name/repo` 另外解释一下这个 Dockerfile,这个 Dockerfile 只打包了前端,也就是这部分内容 # build front-end
FROM node:lts-alpine AS builder
COPY ./ /app
WORKDIR /app
RUN npm install pnpm -g && pnpm install && pnpm run build 后面这部分内容,只是安装了服务端依赖,并从上面👆构建的结果拷贝 # service
FROM node:lts-alpine
COPY /service /app
# 从 builder 构建结果中,拷贝 dist 到当前的 public 里面
COPY --from=builder /app/dist /app/public
WORKDIR /app
RUN npm install pnpm -g && pnpm install
EXPOSE 3002
CMD ["pnpm", "run", "start"] |
@0x-jerry @marlkiller @wangdashuaihenshuai @nisiyong 非常感谢 4 位,本机跑起来了 |
docker: Error response from daemon: manifest for 0xjerry/chatgpt-web:latest not found: manifest unknown: manifest unknown好像没找到这个镜像 |
稍等下,刚刚本地测试,还没发布完 |
@Chanzhaoyu 文档可能需要改一下,readme 里面写的我测试的 docker 仓库, @lhlxx2010 目前可用的 tag 是 main,也就是 version: '3'
service:
app:
image: 0xjerry/chatgpt-web #需要改一下
ports:
- 3002:3002
environment:
OPENAI_API_KEY: xxxxxx |
可以,开始拉了,但是不是1002也要放出来呀?否则没有web ui端口了吧 |
跑起来了,没问题。 |
* perf: optimize docker image * perf: shrink image size * fix: build docker image * fix: docker image namespace * docs: add docker compose example * docs: fix docker compose example * docs: fix again :) * docs: and again.....
我也有同样的疑惑,能帮忙解释下吗 |
@IMYR666 Docker 镜像里面,已经是经过构建后的资源文件。所以是不需要启动 vite 的,也就不需要 1002 端口。 具体的 compose 配置,可以参考项目中的 docker-compose.yaml |
那我启动容器后,需要看页面是在浏览器中输入http://localhost:3002吗 |
新增一些优化和功能:
自动化构建,需要自行修改一些配置项:
build_docker.yml
中的推送仓库