diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 69183b7..18a243c 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -130,44 +130,29 @@ jobs: scrutiny-web-* scrutiny-collector-metrics-* - build-docker: + makefile-docker-omnibus: + name: Build Docker Omnibus From Makefile runs-on: ubuntu-latest - permissions: - contents: read - steps: - - name: Checkout repository + - name: Checkout uses: actions/checkout@v6 - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - with: - platforms: 'arm64,arm' - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Build omnibus - uses: docker/build-push-action@v6 - with: - platforms: linux/amd64,linux/arm64 - context: . - file: docker/Dockerfile - push: false - cache-from: type=gha - cache-to: type=gha,mode=max - - name: Build collector - uses: docker/build-push-action@v6 - with: - platforms: linux/amd64,linux/arm64,linux/arm/v7 - context: . - file: docker/Dockerfile.collector - push: false - cache-from: type=gha - cache-to: type=gha,mode=max - - name: Build web - uses: docker/build-push-action@v6 - with: - platforms: linux/amd64,linux/arm64,linux/arm/v7 - context: . - file: docker/Dockerfile.web - push: false - cache-from: type=gha - cache-to: type=gha,mode=max + - name: Build + run: make docker-omnibus + + makefile-docker-web: + name: Build Docker Web From Makefile + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v6 + - name: Build + run: make docker-web + + makefile-docker-collector: + name: Build Docker Collector From Makefile + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v6 + - name: Build + run: make docker-collector diff --git a/Makefile b/Makefile index 1d7f9ef..fd4bd5b 100644 --- a/Makefile +++ b/Makefile @@ -122,13 +122,8 @@ binary-frontend-test-coverage: # Docker # NOTE: these docker make targets are only used for local development (not used by Github Actions/CI) ######################################################################################################################## -.PHONY: docker-smartmontools -docker-smartmontools: - @echo "building smartmontools docker image" - docker build $(DOCKER_TARGETARCH_BUILD_ARG) -f docker/Dockerfile.smartmontools -t smartmontools-build . - .PHONY: docker-collector -docker-collector: docker-smartmontools +docker-collector: @echo "building collector docker image" docker build $(DOCKER_TARGETARCH_BUILD_ARG) -f docker/Dockerfile.collector -t ghcr.io/analogj/scrutiny-dev:collector . @@ -138,6 +133,6 @@ docker-web: docker build $(DOCKER_TARGETARCH_BUILD_ARG) -f docker/Dockerfile.web -t ghcr.io/analogj/scrutiny-dev:web . .PHONY: docker-omnibus -docker-omnibus: docker-smartmontools +docker-omnibus: @echo "building omnibus docker image" docker build $(DOCKER_TARGETARCH_BUILD_ARG) -f docker/Dockerfile -t ghcr.io/analogj/scrutiny-dev:omnibus . diff --git a/docker/Dockerfile b/docker/Dockerfile index 5e7e9d4..8821879 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -6,7 +6,8 @@ ######## Build the frontend FROM --platform=${BUILDPLATFORM} node AS frontendbuild WORKDIR /go/src/github.com/analogj/scrutiny -COPY --link . /go/src/github.com/analogj/scrutiny +COPY --link Makefile /go/src/github.com/analogj/scrutiny/ +COPY --link webapp/frontend /go/src/github.com/analogj/scrutiny/webapp/frontend RUN make binary-frontend @@ -15,7 +16,10 @@ RUN make binary-frontend FROM golang:1.25-trixie as backendbuild WORKDIR /go/src/github.com/analogj/scrutiny -COPY --link . /go/src/github.com/analogj/scrutiny +COPY --link Makefile /go/src/github.com/analogj/scrutiny/ +COPY --link go.mod go.sum /go/src/github.com/analogj/scrutiny/ +COPY --link collector /go/src/github.com/analogj/scrutiny/collector +COPY --link webapp/backend /go/src/github.com/analogj/scrutiny/webapp/backend RUN apt-get update && DEBIAN_FRONTEND=noninteractive \ apt-get install -y --no-install-recommends \ file \ diff --git a/docker/Dockerfile.collector b/docker/Dockerfile.collector index 7549f0e..7cfe4df 100644 --- a/docker/Dockerfile.collector +++ b/docker/Dockerfile.collector @@ -8,7 +8,10 @@ FROM golang:1.25-trixie AS backendbuild WORKDIR /go/src/github.com/analogj/scrutiny -COPY . /go/src/github.com/analogj/scrutiny +COPY --link Makefile /go/src/github.com/analogj/scrutiny/ +COPY --link go.mod go.sum /go/src/github.com/analogj/scrutiny/ +COPY --link collector /go/src/github.com/analogj/scrutiny/collector +COPY --link webapp/backend /go/src/github.com/analogj/scrutiny/webapp/backend RUN apt-get update && apt-get install -y file && rm -rf /var/lib/apt/lists/* RUN make binary-clean binary-collector diff --git a/docker/Dockerfile.web b/docker/Dockerfile.web index 22dc37e..9d360d6 100644 --- a/docker/Dockerfile.web +++ b/docker/Dockerfile.web @@ -6,7 +6,8 @@ ######## Build the frontend FROM --platform=${BUILDPLATFORM} node AS frontendbuild WORKDIR /go/src/github.com/analogj/scrutiny -COPY --link . /go/src/github.com/analogj/scrutiny +COPY --link Makefile /go/src/github.com/analogj/scrutiny/ +COPY --link webapp/frontend /go/src/github.com/analogj/scrutiny/webapp/frontend RUN make binary-frontend @@ -14,7 +15,10 @@ RUN make binary-frontend FROM golang:1.25-trixie as backendbuild WORKDIR /go/src/github.com/analogj/scrutiny -COPY --link . /go/src/github.com/analogj/scrutiny +COPY --link Makefile /go/src/github.com/analogj/scrutiny/ +COPY --link go.mod go.sum /go/src/github.com/analogj/scrutiny/ +COPY --link collector /go/src/github.com/analogj/scrutiny/collector +COPY --link webapp/backend /go/src/github.com/analogj/scrutiny/webapp/backend RUN apt-get update && apt-get install -y file && rm -rf /var/lib/apt/lists/* RUN make binary-clean binary-all WEB_BINARY_NAME=scrutiny