diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..31ea647 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,9 @@ +.cache/ +.git/ +.tmp/ +build/ +data/ +dist/ +node_modules/ + +.env diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..1fdebb6 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +FROM node:22-alpine +# RUN apk update && apk add --no-cache build-base gcc autoconf automake zlib-dev libpng-dev nasm bash vips-dev + +ARG NODE_ENV=production +ENV NODE_ENV=$NODE_ENV +ENV PATH=/app/node_modules/.bin:$PATH + +WORKDIR /app + +COPY package.json package-lock.json ./ +RUN npm ci --only=production + +COPY . . + +RUN chown -R node:node /app +USER node +RUN npm run build + +EXPOSE 1337 +CMD ["npm", "run", "start"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..73e9c46 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,16 @@ +services: + simple-spaceapi: + build: . + ports: + - "1337:1337" + volumes: + - ./data/base:/app/data/base + - ./data/uploads:/app/public/uploads + env_file: + - .env + environment: + - DATABASE_CLIENT=sqlite + - DATABASE_FILENAME=data/base/sqlite.db + - NODE_ENV=production + - STRAPI_TELEMETRY_DISABLED=true + restart: unless-stopped