From 7c34ccf55603e058c4fe59523331703a0c311c83 Mon Sep 17 00:00:00 2001 From: zkkv Date: Sat, 31 Aug 2024 00:55:54 +0200 Subject: [PATCH 1/4] Add a Dockerfile for project contributors Add a Dockerfile to make it easier to contribute the project with Docker --- Dockerfile | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..508438760 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,28 @@ +ARG base=debian:bookworm-20240812-slim + + +FROM $base AS builder + +RUN apt-get update && apt-get install -y --no-install-recommends \ + build-essential ca-certificates git pkg-config libfmt-dev libgit2-dev libcurl4-openssl-dev nlohmann-json3-dev libtbb-dev \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /app + +COPY .clang-format . +COPY .clang-tidy . +COPY Makefile . +COPY src ./src/ + +RUN make RELEASE=1 install + + +FROM $base + +RUN apt-get update && apt-get install -y --no-install-recommends \ + libfmt-dev libgit2-dev libcurl4-openssl-dev nlohmann-json3-dev libtbb-dev \ + && rm -rf /var/lib/apt/lists/* + +COPY --from=builder /usr/local/bin/poac /usr/local/bin/poac + +ENTRYPOINT ["poac"] From 5d6cd1a01604be3d9037080ed3cacd03935af0a3 Mon Sep 17 00:00:00 2001 From: zkkv Date: Sat, 31 Aug 2024 02:59:19 +0200 Subject: [PATCH 2/4] Change ENTRYPOINT command to CMD --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 508438760..eb28c9561 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,4 +25,4 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ COPY --from=builder /usr/local/bin/poac /usr/local/bin/poac -ENTRYPOINT ["poac"] +CMD ["poac"] From b3c161bc4a6f663e0f0a1722ea447a593d20a07c Mon Sep 17 00:00:00 2001 From: zkkv Date: Sat, 31 Aug 2024 03:52:47 +0200 Subject: [PATCH 3/4] Add build-essential and clang packages to Dockerfile Poac run command couldn't be used without make, g++ and clang --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index eb28c9561..dae803126 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,7 +20,7 @@ RUN make RELEASE=1 install FROM $base RUN apt-get update && apt-get install -y --no-install-recommends \ - libfmt-dev libgit2-dev libcurl4-openssl-dev nlohmann-json3-dev libtbb-dev \ + build-essential clang libfmt-dev libgit2-dev libcurl4-openssl-dev nlohmann-json3-dev libtbb-dev \ && rm -rf /var/lib/apt/lists/* COPY --from=builder /usr/local/bin/poac /usr/local/bin/poac From f6d09bb6a656d233945eae7afc994c1004c49ce2 Mon Sep 17 00:00:00 2001 From: zkkv Date: Sun, 1 Sep 2024 15:59:19 +0200 Subject: [PATCH 4/4] Add a GitHub Workflow that creates a Docker container --- .github/workflows/docker.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .github/workflows/docker.yml diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 000000000..aa21dcc37 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,20 @@ +name: Docker + +on: + push: + branches: [main] + pull_request: + +jobs: + create: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Build Docker image + run: docker build -t img . + + - name: Create Docker container + run: docker create img