Skip to content

Commit c599fcc

Browse files
authored
👷 build: fix docker build failed (#6628)
* try to fix * try to fix * try to fix * fix docker build * try to fix * try to fix docker build * try to fix docker build * update docs * try to not copy pg and drizzle orm * remove /deps * update
1 parent e01686c commit c599fcc

7 files changed

+46
-58
lines changed

.env.example

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77

88
########################################
9-
######## Model Provider Service ########
9+
########## AI Provider Service #########
1010
########################################
1111

1212
### OpenAI ###
@@ -33,7 +33,7 @@ OPENAI_API_KEY=sk-xxxxxxxxx
3333
# AZURE_ENDPOINT=https://docs-test-001.openai.azure.com
3434

3535
# Azure's API version, follows the YYYY-MM-DD format
36-
# AZURE_API_VERSION=2024-06-01
36+
# AZURE_API_VERSION=2024-10-21
3737

3838

3939
### Anthropic Service ####
@@ -214,7 +214,7 @@ OPENAI_API_KEY=sk-xxxxxxxxx
214214
# DATABASE_URL=postgres://username:password@host:port/database
215215

216216
# use `openssl rand -base64 32` to generate a key for the encryption of the database
217-
# we use this key to encrypt the user api key
217+
# we use this key to encrypt the user api key and proxy url
218218
#KEY_VAULTS_SECRET=xxxxx/xxxxxxxxxxxxxx=
219219

220220
# Specify the Embedding model and Reranker model(unImplemented)

Dockerfile

+3-9
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,9 @@ ENV NODE_OPTIONS="--max-old-space-size=8192"
6767

6868
WORKDIR /app
6969

70-
COPY package.json ./
70+
COPY package.json pnpm-workspace.yaml ./
7171
COPY .npmrc ./
72+
COPY packages ./packages
7273

7374
RUN \
7475
# If you want to build docker in China, build with --build-arg USE_CN_MIRROR=true
@@ -86,10 +87,7 @@ RUN \
8687
# Use pnpm for corepack
8788
&& corepack use $(sed -n 's/.*"packageManager": "\(.*\)".*/\1/p' package.json) \
8889
# Install the dependencies
89-
&& pnpm i \
90-
# Add sharp dependencies
91-
&& mkdir -p /deps \
92-
&& pnpm add sharp --prefix /deps
90+
&& pnpm i
9391

9492
COPY . .
9593

@@ -101,13 +99,9 @@ FROM busybox:latest AS app
10199

102100
COPY --from=base /distroless/ /
103101

104-
COPY --from=builder /app/public /app/public
105-
106102
# Automatically leverage output traces to reduce image size
107103
# https://nextjs.org/docs/advanced-features/output-file-tracing
108104
COPY --from=builder /app/.next/standalone /app/
109-
COPY --from=builder /app/.next/static /app/.next/static
110-
COPY --from=builder /deps/node_modules/.pnpm /app/node_modules/.pnpm
111105

112106
# Copy server launcher
113107
COPY --from=builder /app/scripts/serverLauncher/startServer.js /app/startServer.js

Dockerfile.database

+11-11
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,9 @@ ENV NODE_OPTIONS="--max-old-space-size=8192"
7676

7777
WORKDIR /app
7878

79-
COPY package.json ./
79+
COPY package.json pnpm-workspace.yaml ./
8080
COPY .npmrc ./
81+
COPY packages ./packages
8182

8283
RUN \
8384
# If you want to build docker in China, build with --build-arg USE_CN_MIRROR=true
@@ -96,9 +97,11 @@ RUN \
9697
&& corepack use $(sed -n 's/.*"packageManager": "\(.*\)".*/\1/p' package.json) \
9798
# Install the dependencies
9899
&& pnpm i \
99-
# Add sharp and db migration dependencies
100+
# Add db migration dependencies
100101
&& mkdir -p /deps \
101-
&& pnpm add sharp pg drizzle-orm --prefix /deps
102+
&& cd /deps \
103+
&& pnpm init \
104+
&& pnpm add pg drizzle-orm
102105

103106
COPY . .
104107

@@ -110,23 +113,20 @@ FROM busybox:latest AS app
110113

111114
COPY --from=base /distroless/ /
112115

113-
COPY --from=builder /app/public /app/public
114-
115116
# Automatically leverage output traces to reduce image size
116117
# https://nextjs.org/docs/advanced-features/output-file-tracing
117118
COPY --from=builder /app/.next/standalone /app/
118-
COPY --from=builder /app/.next/static /app/.next/static
119-
120-
# copy dependencies
121-
COPY --from=builder /deps/node_modules/.pnpm /app/node_modules/.pnpm
122-
COPY --from=builder /deps/node_modules/pg /app/node_modules/pg
123-
COPY --from=builder /deps/node_modules/drizzle-orm /app/node_modules/drizzle-orm
124119

125120
# Copy database migrations
126121
COPY --from=builder /app/src/database/migrations /app/migrations
127122
COPY --from=builder /app/scripts/migrateServerDB/docker.cjs /app/docker.cjs
128123
COPY --from=builder /app/scripts/migrateServerDB/errorHint.js /app/errorHint.js
129124

125+
# copy dependencies
126+
COPY --from=builder /deps/node_modules/.pnpm /app/node_modules/.pnpm
127+
COPY --from=builder /deps/node_modules/pg /app/node_modules/pg
128+
COPY --from=builder /deps/node_modules/drizzle-orm /app/node_modules/drizzle-orm
129+
130130
# Copy server launcher
131131
COPY --from=builder /app/scripts/serverLauncher/startServer.js /app/startServer.js
132132

Dockerfile.pglite

+3-9
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,9 @@ ENV NODE_OPTIONS="--max-old-space-size=8192"
6868

6969
WORKDIR /app
7070

71-
COPY package.json ./
71+
COPY package.json pnpm-workspace.yaml ./
7272
COPY .npmrc ./
73+
COPY packages ./packages
7374

7475
RUN \
7576
# If you want to build docker in China, build with --build-arg USE_CN_MIRROR=true
@@ -87,10 +88,7 @@ RUN \
8788
# Use pnpm for corepack
8889
&& corepack use $(sed -n 's/.*"packageManager": "\(.*\)".*/\1/p' package.json) \
8990
# Install the dependencies
90-
&& pnpm i \
91-
# Add sharp dependencies
92-
&& mkdir -p /deps \
93-
&& pnpm add sharp --prefix /deps
91+
&& pnpm i
9492

9593
COPY . .
9694

@@ -102,13 +100,9 @@ FROM busybox:latest AS app
102100

103101
COPY --from=base /distroless/ /
104102

105-
COPY --from=builder /app/public /app/public
106-
107103
# Automatically leverage output traces to reduce image size
108104
# https://nextjs.org/docs/advanced-features/output-file-tracing
109105
COPY --from=builder /app/.next/standalone /app/
110-
COPY --from=builder /app/.next/static /app/.next/static
111-
COPY --from=builder /deps/node_modules/.pnpm /app/node_modules/.pnpm
112106

113107
# Copy server launcher
114108
COPY --from=builder /app/scripts/serverLauncher/startServer.js /app/startServer.js

README.md

+17-20
Original file line numberDiff line numberDiff line change
@@ -560,25 +560,22 @@ If you have deployed your own project following the one-click deployment steps i
560560

561561
We provide a Docker image for deploying the LobeChat service on your own private device. Use the following command to start the LobeChat service:
562562

563+
1. create a folder to for storage files
564+
563565
```fish
564-
$ docker run -d -p 3210:3210 \
565-
-e OPENAI_API_KEY=sk-xxxx \
566-
-e ACCESS_CODE=lobe66 \
567-
--name lobe-chat \
568-
lobehub/lobe-chat
566+
$ mkdir lobe-chat-db && cd lobe-chat-db
569567
```
570568

571-
> \[!TIP]
572-
>
573-
> If you need to use the OpenAI service through a proxy, you can configure the proxy address using the `OPENAI_PROXY_URL` environment variable:
569+
2. init the LobeChat infrastructure
570+
571+
```fish
572+
bash <(curl -fsSL https://lobe.li/setup.sh) -l zh_CN
573+
```
574+
575+
3. Start the LobeChat service
574576

575577
```fish
576-
$ docker run -d -p 3210:3210 \
577-
-e OPENAI_API_KEY=sk-xxxx \
578-
-e OPENAI_PROXY_URL=https://api-proxy.com/v1 \
579-
-e ACCESS_CODE=lobe66 \
580-
--name lobe-chat \
581-
lobehub/lobe-chat
578+
docker compose up -d
582579
```
583580

584581
> \[!NOTE]
@@ -793,12 +790,12 @@ This project is [Apache 2.0](./LICENSE) licensed.
793790
[discord-link]: https://discord.gg/AYFPHvv2jT
794791
[discord-shield]: https://img.shields.io/discord/1127171173982154893?color=5865F2&label=discord&labelColor=black&logo=discord&logoColor=white&style=flat-square
795792
[discord-shield-badge]: https://img.shields.io/discord/1127171173982154893?color=5865F2&label=discord&labelColor=black&logo=discord&logoColor=white&style=for-the-badge
796-
[docker-pulls-link]: https://hub.docker.com/r/lobehub/lobe-chat
797-
[docker-pulls-shield]: https://img.shields.io/docker/pulls/lobehub/lobe-chat?color=45cc11&labelColor=black&style=flat-square
798-
[docker-release-link]: https://hub.docker.com/r/lobehub/lobe-chat
799-
[docker-release-shield]: https://img.shields.io/docker/v/lobehub/lobe-chat?color=369eff&label=docker&labelColor=black&logo=docker&logoColor=white&style=flat-square&sort=semver
800-
[docker-size-link]: https://hub.docker.com/r/lobehub/lobe-chat
801-
[docker-size-shield]: https://img.shields.io/docker/image-size/lobehub/lobe-chat?color=369eff&labelColor=black&style=flat-square
793+
[docker-pulls-link]: https://hub.docker.com/r/lobehub/lobe-chat-database
794+
[docker-pulls-shield]: https://img.shields.io/docker/pulls/lobehub/lobe-chat?color=45cc11&labelColor=black&style=flat-square&sort=semver
795+
[docker-release-link]: https://hub.docker.com/r/lobehub/lobe-chat-database
796+
[docker-release-shield]: https://img.shields.io/docker/v/lobehub/lobe-chat-database?color=369eff&label=docker&labelColor=black&logo=docker&logoColor=white&style=flat-square&sort=semver
797+
[docker-size-link]: https://hub.docker.com/r/lobehub/lobe-chat-database
798+
[docker-size-shield]: https://img.shields.io/docker/image-size/lobehub/lobe-chat-database?color=369eff&labelColor=black&style=flat-square&sort=semver
802799
[docs]: https://lobehub.com/docs/usage/start
803800
[docs-dev-guide]: https://github.com/lobehub/lobe-chat/wiki/index
804801
[docs-docker]: https://lobehub.com/docs/self-hosting/platform/docker

README.zh-CN.md

+6-6
Original file line numberDiff line numberDiff line change
@@ -813,12 +813,12 @@ This project is [Apache 2.0](./LICENSE) licensed.
813813
[discord-link]: https://discord.gg/AYFPHvv2jT
814814
[discord-shield]: https://img.shields.io/discord/1127171173982154893?color=5865F2&label=discord&labelColor=black&logo=discord&logoColor=white&style=flat-square
815815
[discord-shield-badge]: https://img.shields.io/discord/1127171173982154893?color=5865F2&label=discord&labelColor=black&logo=discord&logoColor=white&style=for-the-badge
816-
[docker-pulls-link]: https://hub.docker.com/r/lobehub/lobe-chat
817-
[docker-pulls-shield]: https://img.shields.io/docker/pulls/lobehub/lobe-chat?color=45cc11&labelColor=black&style=flat-square
818-
[docker-release-link]: https://hub.docker.com/r/lobehub/lobe-chat
819-
[docker-release-shield]: https://img.shields.io/docker/v/lobehub/lobe-chat?color=369eff&label=docker&labelColor=black&logo=docker&logoColor=white&style=flat-square
820-
[docker-size-link]: https://hub.docker.com/r/lobehub/lobe-chat
821-
[docker-size-shield]: https://img.shields.io/docker/image-size/lobehub/lobe-chat?color=369eff&labelColor=black&style=flat-square
816+
[docker-pulls-link]: https://hub.docker.com/r/lobehub/lobe-chat-database
817+
[docker-pulls-shield]: https://img.shields.io/docker/pulls/lobehub/lobe-chat?color=45cc11&labelColor=black&style=flat-square&sort=semver
818+
[docker-release-link]: https://hub.docker.com/r/lobehub/lobe-chat-database
819+
[docker-release-shield]: https://img.shields.io/docker/v/lobehub/lobe-chat-database?color=369eff&label=docker&labelColor=black&logo=docker&logoColor=white&style=flat-square&sort=semver
820+
[docker-size-link]: https://hub.docker.com/r/lobehub/lobe-chat-database
821+
[docker-size-shield]: https://img.shields.io/docker/image-size/lobehub/lobe-chat-database?color=369eff&labelColor=black&style=flat-square&sort=semver
822822
[docs]: https://lobehub.com/zh/docs/usage/start
823823
[docs-dev-guide]: https://github.com/lobehub/lobe-chat/wiki/index
824824
[docs-docker]: https://lobehub.com/docs/self-hosting/platform/docker

next.config.ts

+3
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,9 @@ const nextConfig: NextConfig = {
111111
},
112112
},
113113
output: buildWithDocker ? 'standalone' : undefined,
114+
outputFileTracingIncludes: buildWithDocker
115+
? { '*': ['public/**/*', '.next/static/**/*'] }
116+
: undefined,
114117
reactStrictMode: true,
115118
redirects: async () => [
116119
{

0 commit comments

Comments
 (0)