diff --git a/.env.example b/.env.example index ebfc96a356be68ca9cde77b3e922610dfae7f7cd..55f11d2bdb11ab88e25842a2e549256befb2bfc2 100644 --- a/.env.example +++ b/.env.example @@ -5,3 +5,10 @@ API_TOKEN_SALT=tobemodified ADMIN_JWT_SECRET=tobemodified TRANSFER_TOKEN_SALT=tobemodified JWT_SECRET=tobemodified +DATABASE_CLIENT=postgresql +DATABASE_HOST=strapiDB +DATABASE_PORT=5433 +DATABASE_NAME=strapi +DATABASE_USERNAME=strapi_user +DATABASE_PASSWORD=123mudar +NODE_ENV=production \ No newline at end of file diff --git a/.gitignore b/.gitignore index bea5dca291cd73f9718439d0984587d6859e2472..3c02b185879440151f73a14f01ce295a967c9821 100644 --- a/.gitignore +++ b/.gitignore @@ -109,3 +109,4 @@ dist build .strapi-updater.json .strapi-cloud.json +.pnpm-store diff --git a/.tmp/data.db b/.tmp/data.db index b11b3bf1adc319a334e6c2c99ef5d13a79d560d4..fbd9c9e19d865fadd43a6284dc3b4d0d2658ba1b 100644 Binary files a/.tmp/data.db and b/.tmp/data.db differ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..3df4d522ca72c2b9fde2dd679ace8d3da894b616 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,30 @@ +# Creating multi-stage build for production +FROM node:18-alpine AS build +RUN apk update && apk add --no-cache build-base gcc autoconf automake zlib-dev libpng-dev vips-dev git > /dev/null 2>&1 +ARG NODE_ENV=production +ENV NODE_ENV=${NODE_ENV} + +WORKDIR /opt/ +COPY package.json pnpm-lock.yaml ./ +RUN npm install -g node-gyp +RUN npm config set fetch-retry-maxtimeout 600000 -g && npm install --only=production +ENV PATH /opt/node_modules/.bin:$PATH +WORKDIR /opt/app +COPY . . +RUN npm run build + +# Creating final production image +FROM node:18-alpine +RUN apk add --no-cache vips-dev +ARG NODE_ENV=production +ENV NODE_ENV=${NODE_ENV} +WORKDIR /opt/ +COPY --from=build /opt/node_modules ./node_modules +WORKDIR /opt/app +COPY --from=build /opt/app ./ +ENV PATH /opt/node_modules/.bin:$PATH + +RUN chown -R node:node /opt/app +USER node +EXPOSE 1337 +CMD ["npm", "run", "start"] diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000000000000000000000000000000000000..c9b5abf6ca41fe9c90a6418b7a24e1aa5267f973 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,30 @@ +services: + strapi: + container_name: strapi + build: . + image: strapi:latest + restart: unless-stopped + env_file: .env + environment: + DATABASE_CLIENT: ${DATABASE_CLIENT} + DATABASE_HOST: strapiDB + DATABASE_PORT: ${DATABASE_PORT} + DATABASE_NAME: ${DATABASE_NAME} + DATABASE_USERNAME: ${DATABASE_USERNAME} + DATABASE_PASSWORD: ${DATABASE_PASSWORD} + JWT_SECRET: ${JWT_SECRET} + ADMIN_JWT_SECRET: ${ADMIN_JWT_SECRET} + APP_KEYS: ${APP_KEYS} + NODE_ENV: ${NODE_ENV} + volumes: + - ./config:/opt/app/config + - ./src:/opt/app/src + - ./package.json:/opt/package.json + - ./yarn.lock:/opt/yarn.lock + - ./.env:/opt/app/.env + - ./public/uploads:/opt/app/public/uploads + ports: + - "1337:1337" + +volumes: + strapi-data: \ No newline at end of file