feat: add frontend service + dockerfile + env example
This commit is contained in:
parent
04835f31b6
commit
eb701bbb8a
3 changed files with 48 additions and 0 deletions
5
config/frontend.env.example
Normal file
5
config/frontend.env.example
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
NODE_ENV=production
|
||||||
|
HOST=0.0.0.0
|
||||||
|
PORT=3000
|
||||||
|
LIBRARY_ROOT=/library
|
||||||
|
DATA_ROOT=/now-playing
|
||||||
|
|
@ -45,3 +45,26 @@ services:
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 3
|
retries: 3
|
||||||
start_period: 30s
|
start_period: 30s
|
||||||
|
|
||||||
|
frontend:
|
||||||
|
build: ./frontend
|
||||||
|
image: denpa-radio-frontend:latest
|
||||||
|
restart: always
|
||||||
|
env_file: config/frontend.env
|
||||||
|
ports:
|
||||||
|
- '172.17.0.1:12001:3000'
|
||||||
|
volumes:
|
||||||
|
- type: bind
|
||||||
|
source: /mnt/trashbox/denpa-radio/library
|
||||||
|
target: /library
|
||||||
|
read_only: true
|
||||||
|
- type: bind
|
||||||
|
source: ./data/now-playing
|
||||||
|
target: /now-playing
|
||||||
|
read_only: true
|
||||||
|
healthcheck:
|
||||||
|
test: ['CMD', 'wget', '-q', '-O', '-', 'http://localhost:3000/api/stations.json']
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
start_period: 15s
|
||||||
|
|
|
||||||
20
frontend/Dockerfile
Normal file
20
frontend/Dockerfile
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
FROM node:22-alpine AS deps
|
||||||
|
WORKDIR /app
|
||||||
|
COPY package.json package-lock.json ./
|
||||||
|
RUN npm ci
|
||||||
|
|
||||||
|
FROM node:22-alpine AS build
|
||||||
|
WORKDIR /app
|
||||||
|
COPY --from=deps /app/node_modules ./node_modules
|
||||||
|
COPY . .
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
|
FROM node:22-alpine AS runtime
|
||||||
|
WORKDIR /app
|
||||||
|
ENV NODE_ENV=production HOST=0.0.0.0 PORT=3000
|
||||||
|
COPY --from=build /app/dist ./dist
|
||||||
|
COPY --from=build /app/node_modules ./node_modules
|
||||||
|
COPY --from=build /app/package.json ./
|
||||||
|
USER node
|
||||||
|
EXPOSE 3000
|
||||||
|
CMD ["node", "./dist/server/entry.mjs"]
|
||||||
Loading…
Add table
Add a link
Reference in a new issue