feat: add docker files
adds compose.yml, Dockerfile and entrypoint.sh for running the backend inside of docker
This commit is contained in:
parent
026d48c6e7
commit
c69f2eb4f0
3 changed files with 94 additions and 0 deletions
19
Dockerfile
Normal file
19
Dockerfile
Normal file
|
@ -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"]
|
33
compose.yml
Normal file
33
compose.yml
Normal file
|
@ -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
|
42
entrypoint.sh
Executable file
42
entrypoint.sh
Executable file
|
@ -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 <<EOF
|
||||||
|
[database]
|
||||||
|
username = "${DATABASE_USERNAME}"
|
||||||
|
password = "${DATABASE_PASSWORD}"
|
||||||
|
database = "${DATABASE}"
|
||||||
|
host = "${DATABASE_HOST}"
|
||||||
|
port = ${DATABASE_PORT}
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
rotate_log() {
|
||||||
|
LOGFILE="$1"
|
||||||
|
BASENAME=$(basename "$LOGFILE" .log)
|
||||||
|
DIRNAME=$(dirname "$LOGFILE")
|
||||||
|
|
||||||
|
if [ -f "$LOGFILE" ]; then
|
||||||
|
# Find the next available number
|
||||||
|
i=1
|
||||||
|
while [ -f "$DIRNAME/${BASENAME}.${i}.log.gz" ]; do
|
||||||
|
i=$((i + 1))
|
||||||
|
done
|
||||||
|
|
||||||
|
gzip "$LOGFILE"
|
||||||
|
mv "${LOGFILE}.gz" "$DIRNAME/${BASENAME}.${i}.log.gz"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
rotate_log "/gorb/logs/stdout.log"
|
||||||
|
rotate_log "/gorb/logs/stderr.log"
|
||||||
|
|
||||||
|
/usr/bin/gorb-backend --config /gorb/config/config.toml > /gorb/logs/stdout.log 2> /gorb/logs/stderr.log
|
Loading…
Add table
Add a link
Reference in a new issue