Unverified Commit 3c28ac80 authored by NGPixel's avatar NGPixel

ci: docker build cleanup

parent e4efb38f
# =========================
# --- BUILD NPM MODULES ---
# =========================
FROM node:16-alpine AS build
RUN apk add yarn g++ make cmake python3 --no-cache
WORKDIR /wiki
COPY ./package.json ./package.json
RUN yarn --production --frozen-lockfile --non-interactive --network-timeout 100000
# ===============
# --- Release ---
# ===============
FROM node:16-alpine
LABEL maintainer="requarks.io"
RUN apk add bash curl git openssh gnupg sqlite --no-cache && \
mkdir -p /wiki && \
mkdir -p /logs && \
mkdir -p /wiki/data/content && \
chown -R node:node /wiki /logs
WORKDIR /wiki
COPY --chown=node:node ./build/assets ./assets
COPY --chown=node:node --from=build /wiki/node_modules ./node_modules
COPY --chown=node:node ./server ./server
COPY --chown=node:node ./build/server/views ./server/views
COPY --chown=node:node ./dev/build/config.yml ./config.yml
COPY --chown=node:node ./build/package.json ./package.json
COPY --chown=node:node ./LICENSE ./LICENSE
USER node
VOLUME ["/wiki/data/content"]
EXPOSE 3000
EXPOSE 3443
CMD ["node", "server"]
# ==================== # ====================
# --- Build Assets --- # --- Build Assets ---
# ==================== # ====================
FROM node:16-alpine AS assets FROM node:18-alpine AS assets
RUN apk add yarn g++ make cmake python3 --no-cache RUN apk add g++ make cmake python3 --no-cache
WORKDIR /wiki WORKDIR /wiki
COPY ./client ./client COPY ./ux
COPY ./dev ./dev COPY ./dev ./dev
COPY ./package.json ./package.json COPY ./package.json ./package.json
COPY ./.babelrc ./.babelrc COPY ./.babelrc ./.babelrc
COPY ./.eslintignore ./.eslintignore COPY ./.eslintignore ./.eslintignore
COPY ./.eslintrc.yml ./.eslintrc.yml COPY ./.eslintrc.yml ./.eslintrc.yml
RUN yarn cache clean RUN cd ux && \
RUN yarn --frozen-lockfile --non-interactive npm ci --audit=false --fund=false
RUN yarn build RUN npm run build
RUN rm -rf /wiki/node_modules
RUN yarn --production --frozen-lockfile --non-interactive
# =============== # ===============
# --- Release --- # --- Release ---
# =============== # ===============
FROM node:16-alpine FROM node:18-alpine
LABEL maintainer="requarks.io" LABEL maintainer="requarks.io"
RUN apk add bash curl git openssh gnupg sqlite --no-cache && \ RUN apk add bash curl git openssh gnupg --no-cache && \
mkdir -p /wiki && \ mkdir -p /wiki && \
mkdir -p /logs && \ mkdir -p /logs && \
mkdir -p /wiki/data/content && \ mkdir -p /wiki/data/content && \
...@@ -35,20 +33,19 @@ RUN apk add bash curl git openssh gnupg sqlite --no-cache && \ ...@@ -35,20 +33,19 @@ RUN apk add bash curl git openssh gnupg sqlite --no-cache && \
WORKDIR /wiki WORKDIR /wiki
COPY --chown=node:node --from=assets /wiki/assets ./assets COPY --chown=node:node --from=assets /wiki/assets ./assets
COPY --chown=node:node --from=assets /wiki/node_modules ./node_modules
COPY --chown=node:node ./server ./server COPY --chown=node:node ./server ./server
COPY --chown=node:node --from=assets /wiki/server/views ./server/views
COPY --chown=node:node ./dev/build/config.yml ./config.yml COPY --chown=node:node ./dev/build/config.yml ./config.yml
COPY --chown=node:node ./package.json ./package.json
COPY --chown=node:node ./LICENSE ./LICENSE COPY --chown=node:node ./LICENSE ./LICENSE
USER node USER node
ENV NODE_ENV=production
RUN cd server && npm ci --omit=dev --audit=false --fund=false
VOLUME ["/wiki/data/content"] VOLUME ["/wiki/data/content"]
EXPOSE 3000 EXPOSE 3000
EXPOSE 3443 EXPOSE 3443
# HEALTHCHECK --interval=30s --timeout=30s --start-period=30s --retries=3 CMD curl -f http://localhost:3000/healthz
CMD ["node", "server"] CMD ["node", "server"]
port: 3000 port: 3000
bindIP: 0.0.0.0 bindIP: 0.0.0.0
db: db:
type: $(DB_TYPE)
host: '$(DB_HOST)' host: '$(DB_HOST)'
port: $(DB_PORT) port: $(DB_PORT:5432)
user: '$(DB_USER)' user: '$(DB_USER)'
pass: '$(DB_PASS)' pass: '$(DB_PASS)'
db: $(DB_NAME) db: $(DB_NAME)
storage: $(DB_FILEPATH)
ssl: $(DB_SSL) ssl: $(DB_SSL)
ssl: ssl:
enabled: $(SSL_ACTIVE) enabled: $(SSL_ACTIVE)
...@@ -17,4 +15,3 @@ ssl: ...@@ -17,4 +15,3 @@ ssl:
subscriberEmail: $(LETSENCRYPT_EMAIL) subscriberEmail: $(LETSENCRYPT_EMAIL)
logLevel: $(LOG_LEVEL:info) logLevel: $(LOG_LEVEL:info)
logFormat: $(LOG_FORMAT:default) logFormat: $(LOG_FORMAT:default)
ha: $(HA_ACTIVE)
# -- DEV DOCKERFILE --
# -- DO NOT USE IN PRODUCTION! --
FROM node:14
LABEL maintainer "requarks.io"
RUN apt-get update && \
apt-get install -y bash curl git python make g++ nano openssh-server gnupg && \
mkdir -p /wiki
WORKDIR /wiki
ENV dockerdev 1
ENV DEVDB postgres
EXPOSE 3000
CMD ["tail", "-f", "/dev/null"]
port: 3000
bindIP: 0.0.0.0
db:
type: postgres
host: db
port: 5432
user: wikijs
pass: wikijsrocks
db: wiki
logLevel: info
# -- DEV DOCKER-COMPOSE --
# -- DO NOT USE IN PRODUCTION! --
version: "3.8"
services:
db:
image: postgres:11-alpine
environment:
POSTGRES_DB: wiki
POSTGRES_PASSWORD: wikijsrocks
POSTGRES_USER: wikijs
logging:
driver: "none"
restart: unless-stopped
volumes:
- db-data:/var/lib/postgresql/data
pgadmin:
image: dpage/pgadmin4:latest
environment:
PGADMIN_DEFAULT_EMAIL: dev@js.wiki
PGADMIN_DEFAULT_PASSWORD: "123123"
PGADMIN_DISABLE_POSTFIX: true
PGADMIN_CONFIG_MASTER_PASSWORD_REQUIRED: False
network_mode: service:db
logging:
driver: "none"
wiki:
build:
context: ../..
dockerfile: dev/containers/Dockerfile
command: sleep infinity
depends_on:
- db
volumes:
- ../..:/workspace
network_mode: service:db
ipc: host
init: true
volumes:
db-data:
version: "3"
services:
db:
image: postgres:11-alpine
environment:
POSTGRES_DB: wiki
POSTGRES_PASSWORD: wikijsrocks
POSTGRES_USER: wikijs
logging:
driver: "none"
restart: unless-stopped
volumes:
- db-data:/var/lib/postgresql/data
wiki:
image: requarks/wiki:2
depends_on:
- db
environment:
DB_TYPE: postgres
DB_HOST: db
DB_PORT: 5432
DB_USER: wikijs
DB_PASS: wikijsrocks
DB_NAME: wiki
restart: unless-stopped
ports:
- "80:3000"
- "443:3443"
volumes:
db-data:
FROM requarks/wiki:2
USER root
RUN chgrp -R 0 /wiki /logs && \
chmod -R g=u /wiki /logs
USER 1001
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment