diff --git a/Dockerfile b/Dockerfile index b9cb530..250fe65 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,23 +1,29 @@ ARG APP_PATH=/opt/outline -FROM node:20-slim as base +FROM node:20-slim AS base ARG APP_PATH WORKDIR $APP_PATH FROM base AS build COPY ./src/package.json ./src/yarn.lock ./ COPY ./src/patches ./patches +RUN apt-get update && \ + apt-get install -y wget && \ + rm -rf /var/lib/apt/lists/* RUN yarn install --no-optional --frozen-lockfile --network-timeout 1000000 && \ yarn cache clean COPY src . COPY shared ./shared +ARG CDN_URL RUN yarn build RUN rm -rf node_modules RUN yarn install --production=true --frozen-lockfile --network-timeout 1000000 && \ yarn cache clean +ENV PORT=3000 +HEALTHCHECK CMD wget -qO- http://localhost:${PORT}/_health | grep -q "OK" || exit 1 FROM base AS release -ENV NODE_ENV production +ENV NODE_ENV=production COPY --from=build $APP_PATH/build ./build COPY --from=build $APP_PATH/server ./server COPY --from=build $APP_PATH/public ./public @@ -29,11 +35,11 @@ RUN addgroup --gid 1001 nodejs && \ chown -R nodejs:nodejs $APP_PATH/build && \ mkdir -p /var/lib/outline && \ chown -R nodejs:nodejs /var/lib/outline -ENV FILE_STORAGE_LOCAL_ROOT_DIR /var/lib/outline/data +ENV FILE_STORAGE_LOCAL_ROOT_DIR=/var/lib/outline/data RUN mkdir -p "$FILE_STORAGE_LOCAL_ROOT_DIR" && \ chown -R nodejs:nodejs "$FILE_STORAGE_LOCAL_ROOT_DIR" && \ chmod 1777 "$FILE_STORAGE_LOCAL_ROOT_DIR" VOLUME /var/lib/outline/data USER nodejs EXPOSE 3000 -CMD ["yarn", "start"] \ No newline at end of file +CMD ["yarn", "start"]