Add initial Docker setup with .dockerignore, Dockerfile, and entrypoint script
Some checks failed
Building and publishing Homebrewery as Docker Image / build (release) Failing after 2m10s
Some checks failed
Building and publishing Homebrewery as Docker Image / build (release) Failing after 2m10s
This commit is contained in:
42
Dockerfile
Normal file
42
Dockerfile
Normal file
@@ -0,0 +1,42 @@
|
||||
# Base Stage for NodeJS
|
||||
FROM node:22-alpine as base
|
||||
|
||||
ENV NODE_ENV=docker
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
# Installing dependencies with use of package-lock.json
|
||||
FROM base as deps
|
||||
|
||||
RUN apk --no-cache add git
|
||||
COPY homebrewery/package.json homebrewery/package-lock.json ./
|
||||
RUN npm ci --ignore-scripts
|
||||
|
||||
# Build Stage
|
||||
FROM base as builder
|
||||
|
||||
COPY --from=deps /usr/src/app/node_modules ./node_modules
|
||||
COPY homebrewery/ ./
|
||||
RUN npm run build
|
||||
|
||||
FROM base as runner
|
||||
|
||||
# Defining env variables for homebrewery
|
||||
ENV HB_HOST=homebrewery.local.naturalcrit.com:8000 HB_NATURALCRIT_URL=local.naturalcrit.com:8010 HB_SECRET=secret PORT=8000 HB_ENABLE_V3=true HB_ENABLE_THEMES=true HB_LOCAL_ENVIRONMENTS=docker,local HB_PUBLIC_URL=https://homebrewery.naturalcrit.com
|
||||
ENV HB_IMAGES=null HB_FONTS=null
|
||||
|
||||
# Adding tini for clean signal handling
|
||||
ENV TINI_VERSION v0.19.0
|
||||
ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /tini
|
||||
RUN chmod +x /tini
|
||||
|
||||
# Adding Entrypoint
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
RUN chmod +x /entrypoint.sh
|
||||
|
||||
# Adding executables
|
||||
COPY --from=deps /usr/src/app/node_modules ./node_modules
|
||||
COPY --from=deps /usr/src/app/build ./build
|
||||
COPY homebrewery/ ./
|
||||
|
||||
EXPOSE 8000
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
Reference in New Issue
Block a user