mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-25 06:14:59 +00:00
63 lines
1.4 KiB
Docker
63 lines
1.4 KiB
Docker
# MetaBuilder Tools/Admin Container
|
|
# Includes migrations, seed scripts, and administrative tools
|
|
# Build: docker build -f deployment/docker/Dockerfile.tools -t metabuilder-tools .
|
|
# Run: docker run -it --rm --network metabuilder_network metabuilder-tools
|
|
|
|
FROM node:20-alpine AS node-builder
|
|
|
|
WORKDIR /build
|
|
|
|
# Install Node dependencies for Next.js
|
|
COPY frontends/nextjs/package*.json ./frontends/nextjs/
|
|
RUN cd frontends/nextjs && npm ci
|
|
|
|
COPY frontends/nextjs/ ./frontends/nextjs/
|
|
COPY prisma/ ./prisma/
|
|
|
|
# Build Prisma client
|
|
RUN cd frontends/nextjs && npx prisma generate
|
|
|
|
FROM node:20-alpine
|
|
|
|
# Install additional tools
|
|
RUN apk add --no-cache \
|
|
postgresql-client \
|
|
curl \
|
|
jq \
|
|
bash \
|
|
libcurl \
|
|
ca-certificates
|
|
|
|
# Create app user
|
|
RUN adduser -D -s /bin/bash metabuilder
|
|
|
|
WORKDIR /app
|
|
|
|
# Copy Node.js tools and Prisma artifacts
|
|
COPY --from=node-builder /build/frontends/nextjs /app/nextjs
|
|
COPY --from=node-builder /build/prisma /app/prisma
|
|
|
|
# Copy seed data and scripts
|
|
COPY seed/ /app/seed/
|
|
COPY deployment/scripts/ /app/scripts/
|
|
RUN chmod +x /app/scripts/*.sh
|
|
|
|
# Copy packages
|
|
COPY packages/ /app/packages/
|
|
|
|
# Set ownership
|
|
RUN chown -R metabuilder:metabuilder /app
|
|
|
|
USER metabuilder
|
|
|
|
# Environment variables
|
|
ENV METABUILDER_BASE_URL=http://metabuilder-app:3000
|
|
ENV METABUILDER_PACKAGES=/app/packages
|
|
ENV DBAL_API_URL=http://dbal-daemon:8080
|
|
ENV NODE_ENV=production
|
|
|
|
WORKDIR /app
|
|
|
|
# Default to interactive shell
|
|
CMD ["/bin/bash"]
|