diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..e80c68a2 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,12 @@ +node_modules +npm-debug.log +.git +.gitignore +.vscode +*.md +images +example +.env.dev +.eslintrc.js +.eslintignore +.editorconfig diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..3724fa8b --- /dev/null +++ b/Dockerfile @@ -0,0 +1,38 @@ +# Build stage +FROM node:20-alpine AS builder + +WORKDIR /app + +# Install dependencies +COPY package.json yarn.lock ./ +RUN yarn install --frozen-lockfile + +# Copy source and build +COPY . . +RUN yarn build + +# Production stage +FROM node:20-alpine + +WORKDIR /app + +# Copy built assets and required files +COPY --from=builder /app/dist ./dist +COPY --from=builder /app/src/server ./src/server +COPY --from=builder /app/devtools-frontend ./devtools-frontend +COPY --from=builder /app/node_modules ./node_modules +COPY --from=builder /app/package.json ./ + +# Expose port +EXPOSE 8080 + +# Environment variables +ENV NODE_ENV=production +ENV DEBUG_PORT=8080 + +# Health check +HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ + CMD wget --no-verbose --tries=1 --spider http://localhost:8080/page/index.html || exit 1 + +# Start server +CMD ["npm", "run", "start"] diff --git a/release/values.dev.yaml b/release/values.dev.yaml new file mode 100644 index 00000000..d5b5f222 --- /dev/null +++ b/release/values.dev.yaml @@ -0,0 +1,74 @@ +# values.dev.yaml - devtools-remote-debugger dev environment +global: + fullnameOverride: devtools-remote-debugger-dev + environment: dev + service: devtools-remote-debugger + team: adhub + +replicaCount: 1 + +image: + repository: 591756927972.dkr.ecr.ap-northeast-1.amazonaws.com/devtools-remote-debugger + pullPolicy: IfNotPresent + tag: "" + +serviceAccount: + create: true + name: devtools-remote-debugger-dev + annotations: {} + +# -- Service +ports: + - name: http + port: 8080 + protocol: TCP + +# -- VirtualService (Istio Gateway Routes) +gatewayRoutes: + - name: public + hosts: + - webview-debug-dev.buzzvil.dev + http: + - name: devtools-remote-debugger + route: + - destination: + host: devtools-remote-debugger-dev.devtools-remote-debugger + port: + number: 8080 + +resources: + limits: + cpu: 500m + memory: 512Mi + requests: + cpu: 100m + memory: 256Mi + +readinessProbe: + httpGet: + path: /page/index.html + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 5 + failureThreshold: 3 + +livenessProbe: + httpGet: + path: /page/index.html + port: 8080 + initialDelaySeconds: 15 + periodSeconds: 20 + timeoutSeconds: 5 + failureThreshold: 3 + +config: + NODE_ENV: production + DEBUG_PORT: "8080" + DEBUG_HOST: https://webview-debug-dev.buzzvil.dev + +nodeSelector: {} + +tolerations: [] + +affinity: {} diff --git a/release/values.prod.yaml b/release/values.prod.yaml new file mode 100644 index 00000000..9502fef3 --- /dev/null +++ b/release/values.prod.yaml @@ -0,0 +1,74 @@ +# values.prod.yaml - devtools-remote-debugger prod environment +global: + fullnameOverride: devtools-remote-debugger-prod + environment: prod + service: devtools-remote-debugger + team: adhub + +replicaCount: 2 + +image: + repository: 591756927972.dkr.ecr.ap-northeast-1.amazonaws.com/devtools-remote-debugger + pullPolicy: IfNotPresent + tag: "" + +serviceAccount: + create: true + name: devtools-remote-debugger-prod + annotations: {} + +# -- Service +ports: + - name: http + port: 8080 + protocol: TCP + +# -- VirtualService (Istio Gateway Routes) +gatewayRoutes: + - name: public + hosts: + - webview-debug.buzzvil.dev + http: + - name: devtools-remote-debugger + route: + - destination: + host: devtools-remote-debugger-prod.devtools-remote-debugger + port: + number: 8080 + +resources: + limits: + cpu: 1000m + memory: 1Gi + requests: + cpu: 200m + memory: 512Mi + +readinessProbe: + httpGet: + path: /page/index.html + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 5 + failureThreshold: 3 + +livenessProbe: + httpGet: + path: /page/index.html + port: 8080 + initialDelaySeconds: 15 + periodSeconds: 20 + timeoutSeconds: 5 + failureThreshold: 3 + +config: + NODE_ENV: production + DEBUG_PORT: "8080" + DEBUG_HOST: https://webview-debug.buzzvil.dev + +nodeSelector: {} + +tolerations: [] + +affinity: {}