feat: create a Docker compose stack for production

This commit is contained in:
Matouš Volf 2024-09-12 20:26:23 +02:00
parent 90c20fe6b7
commit 588eb63201
2 changed files with 42 additions and 0 deletions

View File

@ -0,0 +1,20 @@
services:
app:
build:
dockerfile: docker/prod/app/Dockerfile
restart: always
ports: [ "8000:8000" ]
depends_on: [ "db" ]
db:
image: postgres:16.4-bookworm
volumes: [ "db_data:/var/lib/postgresql/data" ]
ports: [ "5432:5432" ]
environment:
POSTGRES_DB: todo_baggins
POSTGRES_USER: app
POSTGRES_PASSWORD: app
restart: always
volumes:
db_data:

View File

@ -0,0 +1,22 @@
FROM rust:1.80-bookworm as builder
RUN rustup target add wasm32-unknown-unknown && \
cargo install dioxus-cli diesel_cli && \
apt-get update && apt-get install -y nodejs=18.19.0+dfsg-6~deb12u2 npm=9.2.0~ds1-1 supervisor=4.2.5-1
COPY . /srv/app
WORKDIR /srv/app
RUN npm install
RUN npm run build
RUN dx build --release
FROM debian:bookworm-slim AS runner
RUN apt-get update && apt-get install -y libpq5
COPY --from=builder /srv/app/dist /srv/app/dist
COPY ./.env /srv/app/.env
WORKDIR /srv/app
CMD ["./dist/todo-baggins"]