From 5f00fa41eb84fc9d79d1f7fa1c43f0afbd2e7451 Mon Sep 17 00:00:00 2001 From: Justin Moore Date: Fri, 18 Oct 2024 13:39:58 -0500 Subject: [PATCH] Add in `docker-compose` files --- .gitignore | 1 + dkr/app.dockerfile | 23 +++++++++++++++++++++++ docker-compose.yaml | 41 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+) create mode 100644 dkr/app.dockerfile create mode 100644 docker-compose.yaml diff --git a/.gitignore b/.gitignore index fedaa2b..cd032e9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ +/.vscode /target .env diff --git a/dkr/app.dockerfile b/dkr/app.dockerfile new file mode 100644 index 0000000..4517b0a --- /dev/null +++ b/dkr/app.dockerfile @@ -0,0 +1,23 @@ +# FIXME: Use mariner once they support the latest Rust. +# FROM mcr.microsoft.com/cbl-mariner/base/rust:1 as builder +FROM rust:1-bullseye AS builder + +COPY Cargo.lock /build/ +COPY Cargo.toml /build/ +COPY src /build/src + +# Build the default page +WORKDIR /build + +RUN cargo build --release +RUN mkdir -p /app && mv target/release/nederlandskie /app/ + +# FROM mcr.microsoft.com/cbl-mariner/distroless/base:2.0 +FROM debian:bullseye-slim + +COPY --from=builder /app /app + +WORKDIR /app +EXPOSE 8000 + +ENTRYPOINT [ "/app/nederlandskie" ] diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..0124369 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,41 @@ +version: '3.8' +services: + db: + image: mcr.microsoft.com/cbl-mariner/base/postgres:14 + restart: always + environment: + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=postgres + ports: + - '5432:5432' + networks: + - backend + volumes: + - ./sql:/docker-entrypoint-initdb.d + - db:/var/lib/postgresql/data + api: + build: + context: . + dockerfile: dkr/app.dockerfile + command: 'launch' + image: nederlandskie + depends_on: + - db + ports: + - 8000:8000 + networks: + - backend + # environment: + # DATABASE_URL: 'postgres://postgres:postgres@db/nederlandskie' + volumes: + - ./.env:/app/.env + links: + - db + +networks: + backend: + + +volumes: + db: + driver: local