diff --git a/backend.dockerfile b/backend.dockerfile index deed1de..87dc9dd 100644 --- a/backend.dockerfile +++ b/backend.dockerfile @@ -2,7 +2,7 @@ # Build stage ############################# -FROM node:18-alpine AS builder +FROM node:22-alpine AS builder WORKDIR /app @@ -20,7 +20,9 @@ RUN yarn install --frozen-lockfile --network-timeout 600000 && yarn build # Production stage ############################# -FROM node:18-alpine +FROM node:22-alpine + +ARG USER=node WORKDIR /app @@ -29,17 +31,18 @@ COPY --chown=node:node --from=builder /app/dist ./dist COPY --chown=node:node --from=builder /app/node_modules ./node_modules # Copy the rest of the application code -COPY --chown=node:node src ./src COPY --chown=node:node drizzle.config.ts ./ COPY --chown=node:node tsconfig.json ./ +COPY --chown=node:node src/db/schema.ts ./src/db/schema.ts COPY --chown=node:node package.json ./package.json # Create data directory & set permissions to node user RUN mkdir /app/data && \ - chown -R node:node /app/data + chown -R node:node /app/data && \ + chmod -R 755 /app/data -# Run the Docker image as node instead of root -USER node +# Run the Docker image as node or root if Docker Compose du to volume permissions +USER ${USER} # Start the application CMD ["yarn", "start"] \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml index 35b9320..36c065c 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -12,6 +12,8 @@ services: perplexica-backend: build: context: . + args: + - USER=root dockerfile: backend.dockerfile image: itzcrazykns1337/perplexica-backend:main depends_on: