diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a7a05c5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,14 @@ +FROM node:22-alpine AS build +WORKDIR /app +COPY package.json package-lock.json ./ +RUN npm ci +COPY . . +RUN npm run build + +FROM nginx:alpine +RUN sed -i 's/listen\s*80;/listen 3000;/g' /etc/nginx/conf.d/default.conf +RUN sed -i '/location \/ {/a\ try_files $uri $uri/ /index.html;' /etc/nginx/conf.d/default.conf +COPY --from=build /app/dist /usr/share/nginx/html +EXPOSE 3000 +HEALTHCHECK --interval=60s --timeout=10s --retries=3 \ + CMD wget -qO- http://localhost:3000/ || exit 1 diff --git a/coolify.json b/coolify.json new file mode 100644 index 0000000..52faf39 --- /dev/null +++ b/coolify.json @@ -0,0 +1,9 @@ +{ + "name": "spike-breakdown", + "buildpack": "dockercompose", + "branch": "master", + "port": 2011, + "domain": "spikes.dotrepo.com", + "server": "box-repoapps", + "repo": "idea.llm.spike.breakdown" +} diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..0c4beaf --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,13 @@ +services: + spike-breakdown: + build: . + image: spike-breakdown:latest + container_name: spike-breakdown + restart: unless-stopped + ports: + - "${HOST_PORT:-3000}:3000" + healthcheck: + test: ["CMD", "wget", "-qO-", "http://localhost:3000/"] + interval: 60s + timeout: 10s + retries: 3