diff --git a/.dockerignore b/.dockerignore index bda43bf..b689e34 100644 --- a/.dockerignore +++ b/.dockerignore @@ -21,4 +21,3 @@ docker-compose* # App specific database/seeders -.adonisjs diff --git a/.gitignore b/.gitignore index bf3bf72..03b991c 100644 --- a/.gitignore +++ b/.gitignore @@ -22,4 +22,3 @@ yarn-error.log # Platform specific .DS_Store -# .adonisjs diff --git a/Dockerfile b/Dockerfile index 0b02e58..1c43c18 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,61 +1,42 @@ # Source : https://github.com/adonisjs-community/adonis-packages/blob/main/Dockerfile -FROM node:20-alpine3.18 AS base +FROM node:20-alpine3.18 as base RUN apk --no-cache add curl RUN corepack enable # All deps stage -FROM base AS deps +FROM base as deps WORKDIR /app -ADD package.json pnpm-lock.yaml ./ +COPY package.json pnpm-lock.yaml /app/ +COPY .adonisjs /app/.adonisjs RUN pnpm install --ignore-scripts # Production only deps stage -FROM base AS production-deps +FROM base as production-deps WORKDIR /app -ADD package.json pnpm-lock.yaml ./ -RUN pnpm install --ignore-scripts +COPY package.json pnpm-lock.yaml /app/ +COPY .adonisjs /app/.adonisjs +RUN pnpm install --ignore-scripts --prod # Build stage -FROM base AS build +FROM base as build WORKDIR /app COPY --from=deps /app/node_modules /app/node_modules -ADD . . - -ENV PORT=3333 -ENV HOST=localhost -ENV LOG_LEVEL=info -ENV APP_KEY=sLoJth45JD1vcS8n92Y2JUd8w3OL4HQb -ENV NODE_ENV=production -ENV SESSION_DRIVER=cookie -ENV DB_HOST=127.0.0.1 -ENV DB_PORT=5432 -ENV DB_USER=db_user -ENV DB_PASSWORD=db_password -ENV DB_DATABASE=db_db -ENV GOOGLE_CLIENT_ID=client_id -ENV GOOGLE_CLIENT_SECRET=client_secret -ENV GOOGLE_CLIENT_CALLBACK_URL=http://localhost:3333/auth/callback -RUN node ace tuyau:generate +COPY . /app RUN node ace build # Production stage FROM base - ENV NODE_ENV=production -ENV LOG_LEVEL=debug -ENV CACHE_VIEWS=false -ENV SESSION_DRIVER=cookie -ENV PORT=$PORT - WORKDIR /app COPY --from=production-deps /app/node_modules /app/node_modules +COPY --from=production-deps /app/.adonisjs /app/.adonisjs COPY --from=build /app/build /app -COPY --from=build /app/.adonisjs /app/.adonisjs # Expose port EXPOSE $PORT # Start app CMD node bin/console.js migration:run --force && node bin/server.js +