Add docker stuff

This commit is contained in:
Tobias Reisinger 2024-12-26 02:49:11 +01:00
parent 004088d3fb
commit 430e2ca814
Signed by: serguzim
GPG key ID: 13AD60C237A28DFE
6 changed files with 85 additions and 0 deletions

4
.dockerignore Normal file
View file

@ -0,0 +1,4 @@
.dockerignore
docker-bake.hcl
docker-compose.yml
Dockerfile

2
.gitignore vendored
View file

@ -3,3 +3,5 @@
/target
/out
/docker-data

22
Dockerfile Normal file
View file

@ -0,0 +1,22 @@
FROM rust:1 as builder
RUN rustup target add x86_64-unknown-linux-musl && \
apt update && \
apt install -y musl-tools musl-dev && \
update-ca-certificates
COPY ./ /emgauwa
FROM builder as builder-core
WORKDIR /emgauwa/core
RUN cargo build --target x86_64-unknown-linux-musl --release
FROM builder as builder-controller
WORKDIR /emgauwa/controller
RUN cargo build --target x86_64-unknown-linux-musl --release
FROM scratch
COPY --from=builder-core /emgauwa/core/target/x86_64-unknown-linux-musl/release/emgauwa-core /usr/bin/emgauwa-core
COPY --from=builder-controller /emgauwa/controller/target/x86_64-unknown-linux-musl/release/emgauwa-controller /usr/bin/emgauwa-controller
CMD ["echo", "please specify command /usr/bin/emgauwa-core or /usr/bin/emgauwa-controller"]

View file

@ -7,3 +7,16 @@ git-status:
git-diff:
git diff --submodule=diff
cargo-all:
cd common && cargo $(ACTION)
cd controller && cargo $(ACTION)
cd core && cargo $(ACTION)
cargo-build:
$(MAKE) ACTION=build cargo-all
cargo-update:
$(MAKE) ACTION=update cargo-all
docker-bake:
cd controller && docker builder bake
cd core && docker builder bake

15
docker-bake.hcl Normal file
View file

@ -0,0 +1,15 @@
variable "REG" {
default = "registry.serguzim.me"
}
variable "REPO" {
default = "emgauwa/combi"
}
variable "TAG" {
default = "latest"
}
target "default" {
output = ["type=docker"]
dockerfile = "./Dockerfile"
tags = ["${REG}/${REPO}:latest", "${REG}/${REPO}:${TAG}"]
}

29
docker-compose.yml Normal file
View file

@ -0,0 +1,29 @@
services:
core:
image: registry.serguzim.me/emgauwa/combi
command: /usr/bin/emgauwa-core
ports:
- "4419:4419"
environment:
EMGAUWA_CORE__SERVER__HOST: 0.0.0.0
EMGAUWA_CORE__DATABASE: sqlite:///data/core.sqlite
volumes:
- ./docker-data:/data
controller1:
image: registry.serguzim.me/emgauwa/combi
command: /usr/bin/emgauwa-controller
environment:
EMGAUWA_CONTROLLER__SERVER__HOST: core
EMGAUWA_CONTROLLER__DATABASE: sqlite:///data/controller1.sqlite
volumes:
- ./controller/emgauwa-controller.json:/etc/emgauwa/controller.json
- ./docker-data:/data
controller2:
image: registry.serguzim.me/emgauwa/combi
command: /usr/bin/emgauwa-controller
environment:
EMGAUWA_CONTROLLER__SERVER__HOST: core
EMGAUWA_CONTROLLER__DATABASE: sqlite:///data/controller2.sqlite
volumes:
- ./controller/emgauwa-controller.json:/etc/emgauwa/controller.json
- ./docker-data:/data