diff options
-rw-r--r-- | .dockerignore | 5 | ||||
-rw-r--r-- | Dockerfile | 36 | ||||
-rw-r--r-- | docker-compose.yml | 25 |
3 files changed, 66 insertions, 0 deletions
diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..9c6fc5c --- /dev/null +++ b/.dockerignore @@ -0,0 +1,5 @@ +* + +!/CMakeLists.txt +!/LICENSE.txt +!/src/** diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..368524b --- /dev/null +++ b/Dockerfile @@ -0,0 +1,36 @@ +FROM alpine:3.16 AS base + +ARG install_dir="/app/install" + +FROM base AS builder + +RUN apk add --no-cache bsd-compat-headers build-base clang cmake libgit2-dev + +ARG src_dir="/app/src" +ARG build_dir="/app/build" +ARG install_dir + +COPY [".", "$src_dir"] + +RUN mkdir -- "$build_dir" && \ + cd -- "$build_dir" && \ + cmake \ + -D CMAKE_C_COMPILER=clang \ + -D CMAKE_BUILD_TYPE=Release \ + -D "CMAKE_INSTALL_PREFIX=$install_dir" \ + "$src_dir" && \ + make -j install + +FROM base + +LABEL maintainer="Egor Tensin <Egor.Tensin@gmail.com>" + +RUN apk add --no-cache tini libgit2 + +ARG install_dir +COPY --from=builder ["$install_dir", "$install_dir"] + +WORKDIR "$install_dir/bin" + +ENTRYPOINT ["/sbin/tini", "--"] +CMD ["./cimple-server"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..d80a5cd --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,25 @@ +version: '3' + +x-cimple: &common + build: . + image: egortensin/cimple + restart: always + +services: + server: + <<: *common + ports: + - 5556 + worker1: + <<: *common + command: ["./cimple-worker", "--host", "server"] + depends_on: [server] + worker2: + <<: *common + command: ["./cimple-worker", "--host", "server"] + depends_on: [server] + client: + <<: *common + command: [] + entrypoint: ["./cimple-client", "--host", "server"] + restart: 'no' |