diff --git a/docker-compose-prod.yml b/docker-compose-prod.yml index e69de29..9787294 100755 --- a/docker-compose-prod.yml +++ b/docker-compose-prod.yml @@ -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: diff --git a/docker/prod/app/Dockerfile b/docker/prod/app/Dockerfile new file mode 100644 index 0000000..972a08b --- /dev/null +++ b/docker/prod/app/Dockerfile @@ -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"]