Dockerfile updates
This commit is contained in:
parent
842dd95e43
commit
6dc4cfd3cc
21 changed files with 74 additions and 63 deletions
|
|
@ -1,4 +1,4 @@
|
|||
FROM node:18-bullseye-slim as builder
|
||||
FROM node:20-bullseye-slim as builder
|
||||
LABEL maintainer="Darren Clarke <darren@redaranj.com>"
|
||||
ARG APP_DIR=/opt/leafcutter
|
||||
RUN mkdir -p ${APP_DIR}/
|
||||
|
|
@ -10,7 +10,7 @@ ENV NEXT_PUBLIC_NEXTAUTH_URL https://lc.digiresilience.org
|
|||
RUN npm install
|
||||
RUN npm run build
|
||||
|
||||
FROM node:18-bullseye-slim
|
||||
FROM node:20-bullseye-slim
|
||||
ARG BUILD_DATE
|
||||
ARG VERSION
|
||||
LABEL maintainer="Darren Clarke <darren@redaranj.com>"
|
||||
|
|
|
|||
|
|
@ -1,37 +1,49 @@
|
|||
FROM node:18-bullseye-slim as builder
|
||||
LABEL maintainer="Darren Clarke <darren@redaranj.com>"
|
||||
|
||||
FROM node:20 AS base
|
||||
|
||||
FROM base AS builder
|
||||
ARG APP_DIR=/opt/link
|
||||
RUN mkdir -p ${APP_DIR}/
|
||||
COPY . ${APP_DIR}/
|
||||
RUN chown -R node ${APP_DIR}/
|
||||
USER node
|
||||
RUN npm i -g turbo
|
||||
WORKDIR ${APP_DIR}
|
||||
RUN npm install
|
||||
RUN npm run build
|
||||
COPY . .
|
||||
RUN turbo prune --scope=link --docker
|
||||
|
||||
FROM node:18-bullseye-slim
|
||||
FROM base AS installer
|
||||
ARG APP_DIR=/opt/link
|
||||
WORKDIR ${APP_DIR}
|
||||
COPY .gitignore .gitignore
|
||||
COPY --from=builder ${APP_DIR}/out/json/ .
|
||||
COPY --from=builder ${APP_DIR}/out/package-lock.json ./package-lock.json
|
||||
RUN npm install
|
||||
|
||||
COPY --from=builder ${APP_DIR}/out/full/ .
|
||||
RUN npm i -g turbo
|
||||
RUN turbo run build --filter=link
|
||||
|
||||
FROM base AS runner
|
||||
ARG APP_DIR=/opt/link
|
||||
WORKDIR ${APP_DIR}/
|
||||
ARG BUILD_DATE
|
||||
ARG VERSION
|
||||
LABEL maintainer="Darren Clarke <darren@redaranj.com>"
|
||||
LABEL org.label-schema.build-date=$BUILD_DATE
|
||||
LABEL org.label-schema.version=$VERSION
|
||||
ARG APP_DIR=/opt/link
|
||||
ENV APP_DIR ${APP_DIR}
|
||||
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt-get update && \
|
||||
apt-get install -y --no-install-recommends \
|
||||
dumb-init
|
||||
RUN mkdir -p ${APP_DIR}
|
||||
RUN chown -R node ${APP_DIR}/
|
||||
COPY docker-entrypoint.sh /docker-entrypoint.sh
|
||||
RUN chmod +x /docker-entrypoint.sh
|
||||
|
||||
USER node
|
||||
WORKDIR ${APP_DIR}
|
||||
COPY --from=builder ${APP_DIR}/node_modules ./node_modules
|
||||
COPY --from=builder ${APP_DIR}/.next ./.next
|
||||
COPY --from=builder ${APP_DIR}/next.config.js ./next.config.js
|
||||
COPY --from=installer ${APP_DIR}/node_modules/ ./node_modules/
|
||||
COPY --from=installer ${APP_DIR}/apps/link/ ./apps/link/
|
||||
USER root
|
||||
RUN chmod +x ./apps/link/docker-entrypoint.sh
|
||||
USER node
|
||||
EXPOSE 3000
|
||||
ENV PORT 3000
|
||||
ENV NODE_ENV production
|
||||
COPY package.json ./
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
ENTRYPOINT ["./apps/link/docker-entrypoint.sh"]
|
||||
|
|
|
|||
|
|
@ -3,5 +3,5 @@
|
|||
set -e
|
||||
|
||||
cd ${APP_DIR}
|
||||
echo "starting shell app"
|
||||
echo "starting link"
|
||||
exec dumb-init npm run start
|
||||
|
|
|
|||
|
|
@ -1,35 +0,0 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "Creating the Metamigo database and the roles"
|
||||
# We're using 'template1' because we know it should exist. We should not actually change this database.
|
||||
psql -Xv ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname template1 <<EOF
|
||||
CREATE ROLE ${DATABASE_OWNER} WITH LOGIN PASSWORD '${DATABASE_PASSWORD}';
|
||||
GRANT ${DATABASE_OWNER} TO ${DATABASE_ROOT_OWNER};
|
||||
CREATE ROLE ${DATABASE_AUTHENTICATOR} WITH LOGIN PASSWORD '${DATABASE_AUTHENTICATOR_PASSWORD}' NOINHERIT;
|
||||
CREATE ROLE ${DATABASE_VISITOR};
|
||||
GRANT ${DATABASE_VISITOR} TO ${DATABASE_AUTHENTICATOR};
|
||||
-- Database permissions
|
||||
REVOKE ALL ON DATABASE ${DATABASE_NAME} FROM PUBLIC;
|
||||
GRANT ALL ON DATABASE ${DATABASE_NAME} TO ${DATABASE_OWNER};
|
||||
GRANT CONNECT ON DATABASE ${DATABASE_NAME} TO ${DATABASE_AUTHENTICATOR};
|
||||
EOF
|
||||
|
||||
echo "Installing extensions into the database"
|
||||
psql -Xv ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$DATABASE_NAME" <<EOF
|
||||
CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
|
||||
CREATE EXTENSION IF NOT EXISTS "uuid-ossp" WITH SCHEMA public;
|
||||
CREATE EXTENSION IF NOT EXISTS citext WITH SCHEMA public;
|
||||
CREATE EXTENSION IF NOT EXISTS pgcrypto WITH SCHEMA public;
|
||||
CREATE EXTENSION IF NOT EXISTS tablefunc WITH SCHEMA public;
|
||||
EOF
|
||||
|
||||
echo "Creating roles in the database"
|
||||
psql -Xv ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$DATABASE_NAME" <<EOF
|
||||
CREATE ROLE app_anonymous;
|
||||
CREATE ROLE app_user WITH IN ROLE app_anonymous;
|
||||
CREATE ROLE app_admin WITH IN ROLE app_user;
|
||||
GRANT app_anonymous TO ${DATABASE_AUTHENTICATOR};
|
||||
GRANT app_admin TO ${DATABASE_AUTHENTICATOR};
|
||||
EOF
|
||||
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
echo "Creating Metamigo admin user"
|
||||
psql -Xv ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$DATABASE_NAME" <<EOF
|
||||
INSERT INTO app_public.users(email, name, user_role, is_active, created_by)
|
||||
VALUES('$GITLAB_EMAIL_ADDRESS', 'Admin', 'admin'::app_public.role_type, true, '')
|
||||
on conflict (email) do update set user_role = 'admin'::app_public.role_type, is_active = true;
|
||||
EOF
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
FROM node:18-bullseye as builder
|
||||
FROM node:20-bullseye as builder
|
||||
|
||||
ARG METAMIGO_DIR=/opt/metamigo
|
||||
RUN mkdir -p ${METAMIGO_DIR}/
|
||||
|
|
@ -11,14 +11,14 @@ RUN npm run build
|
|||
|
||||
RUN rm -Rf ./node_modules
|
||||
|
||||
FROM node:18-bullseye as clean
|
||||
FROM node:20-bullseye as clean
|
||||
ARG METAMIGO_DIR=/opt/metamigo
|
||||
|
||||
COPY --from=builder ${METAMIGO_DIR} ${METAMIGO_DIR}/
|
||||
|
||||
RUN rm -Rf ./node_modules
|
||||
|
||||
FROM node:18-bullseye as pristine
|
||||
FROM node:20-bullseye as pristine
|
||||
LABEL maintainer="Abel Luck <abel@guardianproject.info>"
|
||||
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt-get update && \
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
FROM node:18-bullseye as builder
|
||||
FROM node:20-bullseye as builder
|
||||
|
||||
ARG METAMIGO_DIR=/opt/metamigo
|
||||
RUN mkdir -p ${METAMIGO_DIR}/
|
||||
|
|
@ -6,20 +6,20 @@ WORKDIR ${METAMIGO_DIR}
|
|||
COPY package.json tsconfig.json ${METAMIGO_DIR}/
|
||||
COPY . ${METAMIGO_DIR}/
|
||||
|
||||
RUN npx --no-install tsc --build --verbose
|
||||
RUN npm --no-install tsc --build --verbose
|
||||
RUN npm install
|
||||
RUN npm run build
|
||||
|
||||
RUN rm -Rf ./node_modules
|
||||
|
||||
FROM node:18-bullseye as clean
|
||||
FROM node:20-bullseye as clean
|
||||
ARG METAMIGO_DIR=/opt/metamigo
|
||||
|
||||
COPY --from=builder ${METAMIGO_DIR} ${METAMIGO_DIR}/
|
||||
|
||||
RUN rm -Rf ./node_modules
|
||||
|
||||
FROM node:18-bullseye as pristine
|
||||
FROM node:20-bullseye as pristine
|
||||
LABEL maintainer="Abel Luck <abel@guardianproject.info>"
|
||||
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt-get update && \
|
||||
|
|
|
|||
|
|
@ -50,5 +50,10 @@
|
|||
"jest-config-link": "*",
|
||||
"tsconfig-link": "*",
|
||||
"typescript": "5.0.4"
|
||||
},
|
||||
"overrides": {
|
||||
"@mui/styles": {
|
||||
"react": "18.2.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
FROM node:18-bullseye as builder
|
||||
FROM node:20-bullseye as builder
|
||||
|
||||
ARG METAMIGO_DIR=/opt/metamigo
|
||||
RUN mkdir -p ${METAMIGO_DIR}/
|
||||
|
|
@ -12,14 +12,14 @@ RUN npm run build
|
|||
|
||||
RUN rm -Rf ./node_modules
|
||||
|
||||
FROM node:18-bullseye as clean
|
||||
FROM node:20-bullseye as clean
|
||||
ARG METAMIGO_DIR=/opt/metamigo
|
||||
|
||||
COPY --from=builder ${METAMIGO_DIR} ${METAMIGO_DIR}/
|
||||
|
||||
RUN rm -Rf ./node_modules
|
||||
|
||||
FROM node:18-bullseye as pristine
|
||||
FROM node:20-bullseye as pristine
|
||||
LABEL maintainer="Abel Luck <abel@guardianproject.info>"
|
||||
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt-get update && \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue