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
|
||||
|
||||
# Install dependencies
|
||||
COPY package*.json ./
|
||||
RUN npm ci --only=production
|
||||
RUN npm ci
|
||||
|
||||
# Copy source and build
|
||||
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
|
||||
|
||||
# Start the application
|
||||
CMD ["node", "build/src/index.js"]
|
||||
|
||||
Loading…
Reference in New Issue