From c69f2eb4f007477018cc5486801dd666897fbb24 Mon Sep 17 00:00:00 2001 From: Radical Date: Thu, 1 May 2025 01:09:24 +0200 Subject: [PATCH] feat: add docker files adds compose.yml, Dockerfile and entrypoint.sh for running the backend inside of docker --- Dockerfile | 19 +++++++++++++++++++ compose.yml | 33 +++++++++++++++++++++++++++++++++ entrypoint.sh | 42 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+) create mode 100644 Dockerfile create mode 100644 compose.yml create mode 100755 entrypoint.sh diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f224deb --- /dev/null +++ b/Dockerfile @@ -0,0 +1,19 @@ +FROM debian:12 + +RUN apt update && apt install libssl3 && rm -rf /var/lib/apt/lists/* /var/cache/apt/* /tmp/* + +COPY target/release/backend /usr/bin/gorb-backend + +COPY entrypoint.sh /usr/bin/entrypoint.sh + +RUN useradd --create-home --home-dir /gorb gorb + +USER gorb + +ENV DATABASE_USERNAME="gorb" +ENV DATABASE_PASSWORD="gorb" +ENV DATABASE="gorb" +ENV DATABASE_HOST="localhost" +ENV DATABASE_PORT="5432" + +ENTRYPOINT ["/usr/bin/entrypoint.sh"] diff --git a/compose.yml b/compose.yml new file mode 100644 index 0000000..edc06eb --- /dev/null +++ b/compose.yml @@ -0,0 +1,33 @@ +version: '3.5' +volumes: + gorb-backend: + gorb-database: +networks: + gorb: +services: + backend: + image: gorb/backend:latest + restart: always + ports: + - 8080:8080 + networks: + - gorb + volumes: + - gorb-backend:/gorb + environment: + - DATABASE_USERNAME=gorb + - DATABASE_PASSWORD=gorb + - DATABASE=gorb + - DATABASE_HOST=database + - DATABASE_PORT=5432 + database: + image: postgres:16 + restart: always + networks: + - gorb + volumes: + - gorb-database:/var/lib/postgresql/data + environment: + - POSTGRES_USER=gorb + - POSTGRES_PASSWORD=gorb + - POSTGRES_DB=gorb diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100755 index 0000000..07e8618 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,42 @@ +#!/bin/sh + +if [ ! -d "/gorb/config" ]; then + mkdir /gorb/config +fi + +if [ ! -d "/gorb/logs" ]; then + mkdir /gorb/logs +fi + +if [ ! -f "/gorb/config/config.toml" ]; then +cat > /gorb/config/config.toml < /gorb/logs/stdout.log 2> /gorb/logs/stderr.log