chore: deployment
parent
50fbb2224e
commit
e130685260
@ -0,0 +1,7 @@
|
|||||||
|
sn48:
|
||||||
|
vault:
|
||||||
|
hydrate:
|
||||||
|
# vault-new-project --env_file .env.prod --name playchoo-auth --inventory_hostname sn4
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
deploy: 4
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
.DS_Store
|
||||||
|
.env
|
||||||
|
.env.prod
|
||||||
|
node_modules/
|
||||||
|
build/
|
||||||
|
dist/
|
||||||
|
coverage/
|
||||||
|
logs/
|
||||||
|
.git
|
||||||
|
.gitignore
|
||||||
@ -0,0 +1,141 @@
|
|||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: default
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
branch:
|
||||||
|
- traefik
|
||||||
|
- master
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: debug-secrets
|
||||||
|
image: alpine
|
||||||
|
environment:
|
||||||
|
VAULT_API_URL:
|
||||||
|
from_secret: VAULT_API_URL
|
||||||
|
commands:
|
||||||
|
- 'echo "Docker Registry URL: $${VAULT_API_URL}"'
|
||||||
|
when:
|
||||||
|
event:
|
||||||
|
- push
|
||||||
|
- tag
|
||||||
|
|
||||||
|
- name: publish
|
||||||
|
image: plugins/docker
|
||||||
|
settings:
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
context: .
|
||||||
|
registry: registry.sn48.zivili.ch
|
||||||
|
repo: registry.sn48.zivili.ch/meow/playchoo-auth
|
||||||
|
tags:
|
||||||
|
- "amd64-1.0.0"
|
||||||
|
- "latest"
|
||||||
|
username:
|
||||||
|
from_secret: PORTUS_USER
|
||||||
|
password:
|
||||||
|
from_secret: PORTUS_PASSWORD
|
||||||
|
debug: true
|
||||||
|
launch_debug: true
|
||||||
|
force_tag: true
|
||||||
|
when:
|
||||||
|
event:
|
||||||
|
- push
|
||||||
|
- tag
|
||||||
|
|
||||||
|
- name: deploy
|
||||||
|
image: registry.sn48.zivili.ch/meow/drone-deploy:amd64-1.0.0
|
||||||
|
pull: never
|
||||||
|
settings:
|
||||||
|
ssh_port:
|
||||||
|
from_secret: SSH_PORT
|
||||||
|
dockerconfigjson:
|
||||||
|
from_secret: dockerconfigjson
|
||||||
|
portus_user:
|
||||||
|
from_secret: PORTUS_USER
|
||||||
|
portus_password:
|
||||||
|
from_secret: PORTUS_PASSWORD
|
||||||
|
ssh_host:
|
||||||
|
from_secret: SSH_HOST
|
||||||
|
ssh_user:
|
||||||
|
from_secret: SSH_USER
|
||||||
|
ssh_key:
|
||||||
|
from_secret: SSH_KEY
|
||||||
|
ssh_fingerprint:
|
||||||
|
from_secret: SSH_FINGERPRINT
|
||||||
|
drone_agent1_token:
|
||||||
|
from_secret: DRONE_AGENT1_TOKEN
|
||||||
|
vault_api_url:
|
||||||
|
from_secret: VAULT_API_URL
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: secret
|
||||||
|
name: SSH_HOST
|
||||||
|
get:
|
||||||
|
path: kv/data/__drone-admin-secrets
|
||||||
|
name: SSH_HOST
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: secret
|
||||||
|
name: SSH_USER
|
||||||
|
get:
|
||||||
|
path: kv/data/__drone-admin-secrets
|
||||||
|
name: SSH_USER
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: secret
|
||||||
|
name: SSH_KEY
|
||||||
|
get:
|
||||||
|
path: kv/data/__drone-admin-secrets
|
||||||
|
name: SSH_KEY
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: secret
|
||||||
|
name: DRONE_AGENT1_TOKEN
|
||||||
|
get:
|
||||||
|
path: kv/data/__drone-admin-secrets
|
||||||
|
name: DRONE_AGENT1_TOKEN
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: secret
|
||||||
|
name: VAULT_API_URL
|
||||||
|
get:
|
||||||
|
path: kv/data/__drone-admin-secrets
|
||||||
|
name: VAULT_API_URL
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: secret
|
||||||
|
name: PORTUS_USER
|
||||||
|
get:
|
||||||
|
path: kv/data/__drone-admin-secrets
|
||||||
|
name: PORTUS_USER
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: secret
|
||||||
|
name: PORTUS_PASSWORD
|
||||||
|
get:
|
||||||
|
path: kv/data/__drone-admin-secrets
|
||||||
|
name: PORTUS_PASSWORD
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: secret
|
||||||
|
name: dockerconfigjson
|
||||||
|
get:
|
||||||
|
path: kv/data/__drone-admin-secrets
|
||||||
|
name: dockerconfigjson
|
||||||
|
|
||||||
|
image_pull_secrets:
|
||||||
|
from_secret: dockerconfigjson
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: secret
|
||||||
|
name: SSH_PORT
|
||||||
|
get:
|
||||||
|
path: kv/data/__drone-admin-secrets
|
||||||
|
name: SSH_PORT
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: secret
|
||||||
|
name: SSH_FINGERPRINT
|
||||||
|
get:
|
||||||
|
path: kv/data/__drone-admin-secrets
|
||||||
|
name: SSH_FINGERPRINT
|
||||||
@ -1,17 +1,28 @@
|
|||||||
FROM node:20-alpine
|
FROM node:22-alpine AS build
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# Install dependencies
|
|
||||||
COPY package*.json ./
|
COPY package*.json ./
|
||||||
RUN npm ci --only=production
|
RUN npm ci
|
||||||
|
|
||||||
# Copy source and build
|
|
||||||
COPY . .
|
COPY . .
|
||||||
RUN npm run build:prod
|
|
||||||
|
|
||||||
# Expose port
|
RUN npm run build:prod \
|
||||||
|
&& npm prune --omit=dev
|
||||||
|
|
||||||
|
FROM node:22-alpine
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
ENV NODE_ENV=production
|
||||||
|
|
||||||
|
COPY --from=build /app/package*.json ./
|
||||||
|
COPY --from=build /app/node_modules ./node_modules
|
||||||
|
COPY --from=build /app/build ./build
|
||||||
|
|
||||||
|
RUN addgroup -S app && adduser -S app -G app && chown -R app:app /app
|
||||||
|
USER app
|
||||||
|
|
||||||
EXPOSE 3700
|
EXPOSE 3700
|
||||||
|
|
||||||
# Start the application
|
|
||||||
CMD ["node", "build/src/index.js"]
|
CMD ["node", "build/src/index.js"]
|
||||||
|
|||||||
Loading…
Reference in New Issue