mirror of
https://github.com/hpware/news-analyze.git
synced 2025-06-23 21:14:23 +00:00
feat: enhance Dockerfile and docker-compose for improved build output handling and service configuration
This commit is contained in:
parent
a0b3438781
commit
f17aea24cd
3 changed files with 48 additions and 42 deletions
83
Dockerfile
83
Dockerfile
|
@ -1,41 +1,46 @@
|
||||||
FROM oven/bun:latest as builder
|
# If you have customized your output directory, please just remove it. :)
|
||||||
|
|
||||||
WORKDIR /app
|
FROM oven/bun:latest as builder
|
||||||
|
|
||||||
# Copy package files
|
WORKDIR /app
|
||||||
COPY package.json ./
|
|
||||||
COPY bun.lockb* package-lock.json* yarn.lock* ./
|
# Copy package files
|
||||||
|
COPY package.json ./
|
||||||
# Install dependencies
|
COPY bun.lockb* package-lock.json* yarn.lock* ./
|
||||||
RUN bun install --frozen-lockfile || bun install
|
|
||||||
|
# Install dependencies
|
||||||
# Copy source files
|
RUN bun install --frozen-lockfile || bun install
|
||||||
COPY . .
|
|
||||||
|
# Copy source files
|
||||||
# Build the application
|
COPY . .
|
||||||
RUN bun run build
|
|
||||||
|
# Build the application
|
||||||
# Production stage
|
RUN bun run build
|
||||||
FROM oven/bun:latest
|
|
||||||
|
# Production stage
|
||||||
WORKDIR /app
|
FROM oven/bun:latest
|
||||||
|
|
||||||
# Copy package files for production
|
WORKDIR /app
|
||||||
COPY --from=builder /app/package.json ./
|
|
||||||
COPY --from=builder /app/bun.lockb* ./
|
# Copy package files for production
|
||||||
|
COPY --from=builder /app/package.json ./
|
||||||
# Conditionally copy build outputs based on framework
|
|
||||||
COPY --from=builder /app/.output* /app/.output* 2>/dev/null || true
|
# Create a shell script to handle build output copying
|
||||||
COPY --from=builder /app/dist* /app/dist* 2>/dev/null || true
|
RUN echo '#!/bin/sh\n\
|
||||||
COPY --from=builder /app/build* /app/build* 2>/dev/null || true
|
for dir in ".output" "dist" "build" ".next"; do\n\
|
||||||
COPY --from=builder /app/.next* /app/.next* 2>/dev/null || true
|
if [ -d "/build/$dir" ]; then\n\
|
||||||
# If you have customized your output directory, please add your custom one here, or just remove it. :)
|
mkdir -p "$dir"\n\
|
||||||
|
cp -r "/build/$dir/." "$dir/"\n\
|
||||||
|
fi\n\
|
||||||
# Install production dependencies
|
done' > /copy-builds.sh && chmod +x /copy-builds.sh
|
||||||
RUN bun install --production
|
|
||||||
|
# Copy build outputs from builder
|
||||||
EXPOSE 3000
|
COPY --from=builder /app /build
|
||||||
|
RUN /copy-builds.sh && rm -rf /build /copy-builds.sh
|
||||||
# Start command will be determined by the framework
|
|
||||||
CMD ["bun", "run", "start"]
|
# Install production dependencies
|
||||||
|
RUN bun install --production
|
||||||
|
|
||||||
|
EXPOSE 3000
|
||||||
|
|
||||||
|
CMD ["bun", "run", "start"]
|
|
@ -1,10 +1,10 @@
|
||||||
version: '3.8'
|
version: '3.8'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
app:
|
newsanalyze-service:
|
||||||
build: .
|
build: .
|
||||||
ports:
|
ports:
|
||||||
- "3000:3000"
|
- "127.0.0.1:36694:3000"
|
||||||
environment:
|
environment:
|
||||||
- NODE_ENV=production
|
- NODE_ENV=production
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
|
@ -9,7 +9,8 @@
|
||||||
"preview": "nuxt preview",
|
"preview": "nuxt preview",
|
||||||
"postinstall": "nuxt prepare",
|
"postinstall": "nuxt prepare",
|
||||||
"prettier": "prettier --write .",
|
"prettier": "prettier --write .",
|
||||||
"createdb": "bun run createDatabase.ts"
|
"createdb": "bun run createDatabase.ts",
|
||||||
|
"start": "bun run .output/server/index.mjs"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fontsource-variable/noto-sans-tc": "^5.2.5",
|
"@fontsource-variable/noto-sans-tc": "^5.2.5",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue