diff --git a/backend/Dockerfile b/backend/Dockerfile index a3528a1c..4b5c231e 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,12 +1,14 @@ -FROM node:20-alpine3.19 AS backend-build +FROM node:20-alpine3.16 AS backend-build ENV TZ="Europe/Helsinki" WORKDIR /usr/src/app -COPY package.json ./ -COPY package-lock.json ./ -COPY prisma prisma +RUN mkdir -p /usr/src/frontend/src/ +COPY frontend/src/backendTypes.d.ts /usr/src/frontend/ +COPY backend/package.json ./ +COPY backend/package-lock.json ./ +COPY backend/prisma prisma ENV NODE_ENV=production @@ -14,15 +16,17 @@ RUN npm ci COPY . . +WORKDIR /usr/src/app/backend + RUN npm run build -FROM node:20-alpine3.19 AS node-run +FROM node:20-alpine3.16 AS node-run WORKDIR /usr/src/app -COPY --from=backend-build /usr/src/app/build /usr/src/app/build -COPY --from=backend-build /usr/src/app/node_modules /usr/src/app/node_modules -COPY --from=backend-build /usr/src/app/prisma /usr/src/app/prisma +COPY --from=backend-build /usr/src/app/backend/build /usr/src/app/build +COPY --from=backend-build /usr/src/app/backend/node_modules /usr/src/app/node_modules +COPY --from=backend-build /usr/src/app/backend/prisma /usr/src/app/prisma EXPOSE 4000 ENV NODE_ENV=production diff --git a/backend/src/services/user.ts b/backend/src/services/user.ts index 95e68dbd..e6e032ee 100644 --- a/backend/src/services/user.ts +++ b/backend/src/services/user.ts @@ -1,13 +1,23 @@ import { prisma } from '../utils/db' import * as bcrypt from 'bcrypt' +import { logger } from '../utils/logger' +import { sleep } from '../utils/common' export const createTestUser = async () => { - const passwordHash = await bcrypt.hash('test', 10) - - await prisma.com_users.create({ - data: { - user_name: 'test', - password: passwordHash, - }, - }) + for (let i = 0; i < 10; i++) { + try { + const passwordHash = await bcrypt.hash('test', 10) + await prisma.com_users.create({ + data: { + user_name: 'test', + password: passwordHash, + }, + }) + logger.info('Test user created.') + return + } catch { + logger.error(`Test user creation failed, attempt ${i} / 10. Trying again in 6 seconds.`) + await sleep(6000) + } + } } diff --git a/docker-compose.yml b/docker-compose.yml index 055b2202..fd3e6bb4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,7 +13,8 @@ services: backend: container_name: nowdb-backend build: - context: backend/ + context: . + dockerfile: ./backend/Dockerfile env_file: .env ports: - 4000:4000