first commit

This commit is contained in:
2023-11-10 18:34:35 +09:00
commit d8a5c1c0e4
106 changed files with 13606 additions and 0 deletions

42
docker/dev/Dockerfile Normal file
View File

@ -0,0 +1,42 @@
FROM node:21-alpine AS base
FROM base AS deps
RUN apk add --no-cache libc6-compat
WORKDIR /app
COPY package.json yarn.lock ./
ENV NEXT_TELEMETRY_DISABLED 0
# RUN yarn install --production=true
RUN yarn --frozen-lockfile
FROM base AS builder
WORKDIR /app
COPY .env.dev.sample .env
COPY . .
ENV NEXT_TELEMETRY_DISABLED 0
RUN yarn upgrade
RUN npx prisma generate
RUN yarn build
RUN npm prune --production
FROM alpine AS runner
RUN apk add --no-cache nodejs
WORKDIR /app
ENV NODE_ENV production
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
COPY --from=builder --chown=nextjs:nodejs /app/next.config.js ./
COPY --from=builder --chown=nextjs:nodejs /app/public ./public
COPY --from=builder --chown=nextjs:nodejs /app/package.json ./package.json
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
# COPY --from=builder --chown=nextjs:nodejs /app/node_modules ./node_modules
# COPY --from=builder --chown=nextjs:nodejs /app/prisma ./prisma
# COPY --from=builder --chown=nextjs:nodejs /app/start.sh .
USER nextjs
EXPOSE 3000
ENV PORT 3000
CMD ["sh", "start.sh"]

View File

@ -0,0 +1,10 @@
version: "3"
services:
app:
build:
context: ../../
dockerfile: docker/dev/Dockerfile
image: learnsteam/learnsteam-quiz:dev
ports:
- "3000:3000"

43
docker/local/Dockerfile Normal file
View File

@ -0,0 +1,43 @@
FROM node:alpine AS base
FROM base AS deps
RUN apk add --no-cache libc6-compat
WORKDIR /app
COPY package.json yarn.lock ./
ENV NEXT_TELEMETRY_DISABLED 0
# RUN yarn install --production=true
RUN yarn --frozen-lockfile
FROM base AS builder
WORKDIR /app
COPY .env.local.sample .env.production
COPY . .
ENV NEXT_TELEMETRY_DISABLED 0
RUN npx prisma generate
RUN yarn build
RUN npm prune --production
COPY ./script/start.sh .
# FROM alpine AS runner
# RUN apk add --no-cache nodejs npm
# RUN npm install npx -g
# WORKDIR /app
ENV NODE_ENV production
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
COPY --from=builder --chown=nextjs:nodejs /app/next.config.js ./
COPY --from=builder --chown=nextjs:nodejs /app/public ./public
COPY --from=builder --chown=nextjs:nodejs /app/package.json ./package.json
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
COPY --from=builder --chown=nextjs:nodejs /app/prisma ./prisma
COPY --from=builder --chown=nextjs:nodejs /app/start.sh .
USER nextjs
EXPOSE 3000
ENV PORT 3000
CMD ["sh", "start.sh"]

View File

@ -0,0 +1,30 @@
version: "3"
services:
db:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: fbOgZ6Xxn5VXBYihjqygRXyaK6ZUgKL6
MYSQL_DATABASE: learnsteam_quiz
ports:
- "33062:3306"
volumes:
- db-data:/var/lib/mysql
app:
build:
context: ../../
dockerfile: docker/local/Dockerfile
image: learnsteam/learnsteam-quiz:local
ports:
- "3000:3000"
environment:
DB_HOST: db
DB_PORT: 3306
DB_USER: root
DB_PASSWORD: fbOgZ6Xxn5VXBYihjqygRXyaK6ZUgKL6
DB_NAME: learnsteam_quiz
depends_on:
- db
restart: always
volumes:
db-data:

34
docker/prod/Dockerfile Normal file
View File

@ -0,0 +1,34 @@
FROM node:alpine AS base
FROM base AS deps
RUN apk update && apk add --no-cache libc6-compat
WORKDIR /app
COPY package.json ./
RUN npm install
FROM base AS builder
WORKDIR /app
COPY .env.prod.sample .env.production
COPY --from=deps /app/node_modules ./node_modules
COPY . .
RUN npx prisma generate
RUN npm run build
FROM alpine AS runner
RUN apk add --no-cache nodejs
WORKDIR /app
ENV NODE_ENV production
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
COPY --from=builder --chown=nextjs:nodejs /app/next.config.js ./
COPY --from=builder --chown=nextjs:nodejs /app/public ./public
COPY --from=builder --chown=nextjs:nodejs /app/package.json ./package.json
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
USER nextjs
EXPOSE 3000
ENV PORT 3000
CMD ["node", "server.js"]

View File

@ -0,0 +1,10 @@
version: "3"
services:
superrichquiz-app:
build:
context: ../../
dockerfile: docker/prod/Dockerfile
image: learnsteam/learnsteam-quiz
ports:
- "3100:3000"