Update docker building (#961)
* Remove old entry and dependencies from Makefile * Update Dockerfiles to only COPY needed files for faster builds and better caching * Test the docker files getting built from the Makefile in CI
This commit is contained in:
+23
-38
@@ -130,44 +130,29 @@ jobs:
|
|||||||
scrutiny-web-*
|
scrutiny-web-*
|
||||||
scrutiny-collector-metrics-*
|
scrutiny-collector-metrics-*
|
||||||
|
|
||||||
build-docker:
|
makefile-docker-omnibus:
|
||||||
|
name: Build Docker Omnibus From Makefile
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout
|
||||||
uses: actions/checkout@v6
|
uses: actions/checkout@v6
|
||||||
- name: Set up QEMU
|
- name: Build
|
||||||
uses: docker/setup-qemu-action@v3
|
run: make docker-omnibus
|
||||||
with:
|
|
||||||
platforms: 'arm64,arm'
|
makefile-docker-web:
|
||||||
- name: Set up Docker Buildx
|
name: Build Docker Web From Makefile
|
||||||
uses: docker/setup-buildx-action@v3
|
runs-on: ubuntu-latest
|
||||||
- name: Build omnibus
|
steps:
|
||||||
uses: docker/build-push-action@v6
|
- name: Checkout
|
||||||
with:
|
uses: actions/checkout@v6
|
||||||
platforms: linux/amd64,linux/arm64
|
- name: Build
|
||||||
context: .
|
run: make docker-web
|
||||||
file: docker/Dockerfile
|
|
||||||
push: false
|
makefile-docker-collector:
|
||||||
cache-from: type=gha
|
name: Build Docker Collector From Makefile
|
||||||
cache-to: type=gha,mode=max
|
runs-on: ubuntu-latest
|
||||||
- name: Build collector
|
steps:
|
||||||
uses: docker/build-push-action@v6
|
- name: Checkout
|
||||||
with:
|
uses: actions/checkout@v6
|
||||||
platforms: linux/amd64,linux/arm64,linux/arm/v7
|
- name: Build
|
||||||
context: .
|
run: make docker-collector
|
||||||
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
|
|
||||||
|
|||||||
@@ -122,13 +122,8 @@ binary-frontend-test-coverage:
|
|||||||
# Docker
|
# Docker
|
||||||
# NOTE: these docker make targets are only used for local development (not used by Github Actions/CI)
|
# 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
|
.PHONY: docker-collector
|
||||||
docker-collector: docker-smartmontools
|
docker-collector:
|
||||||
@echo "building collector docker image"
|
@echo "building collector docker image"
|
||||||
docker build $(DOCKER_TARGETARCH_BUILD_ARG) -f docker/Dockerfile.collector -t ghcr.io/analogj/scrutiny-dev:collector .
|
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 .
|
docker build $(DOCKER_TARGETARCH_BUILD_ARG) -f docker/Dockerfile.web -t ghcr.io/analogj/scrutiny-dev:web .
|
||||||
|
|
||||||
.PHONY: docker-omnibus
|
.PHONY: docker-omnibus
|
||||||
docker-omnibus: docker-smartmontools
|
docker-omnibus:
|
||||||
@echo "building omnibus docker image"
|
@echo "building omnibus docker image"
|
||||||
docker build $(DOCKER_TARGETARCH_BUILD_ARG) -f docker/Dockerfile -t ghcr.io/analogj/scrutiny-dev:omnibus .
|
docker build $(DOCKER_TARGETARCH_BUILD_ARG) -f docker/Dockerfile -t ghcr.io/analogj/scrutiny-dev:omnibus .
|
||||||
|
|||||||
+6
-2
@@ -6,7 +6,8 @@
|
|||||||
######## Build the frontend
|
######## Build the frontend
|
||||||
FROM --platform=${BUILDPLATFORM} node AS frontendbuild
|
FROM --platform=${BUILDPLATFORM} node AS frontendbuild
|
||||||
WORKDIR /go/src/github.com/analogj/scrutiny
|
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
|
RUN make binary-frontend
|
||||||
|
|
||||||
@@ -15,7 +16,10 @@ RUN make binary-frontend
|
|||||||
FROM golang:1.25-trixie as backendbuild
|
FROM golang:1.25-trixie as backendbuild
|
||||||
|
|
||||||
WORKDIR /go/src/github.com/analogj/scrutiny
|
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 \
|
RUN apt-get update && DEBIAN_FRONTEND=noninteractive \
|
||||||
apt-get install -y --no-install-recommends \
|
apt-get install -y --no-install-recommends \
|
||||||
file \
|
file \
|
||||||
|
|||||||
@@ -8,7 +8,10 @@ FROM golang:1.25-trixie AS backendbuild
|
|||||||
|
|
||||||
WORKDIR /go/src/github.com/analogj/scrutiny
|
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 apt-get update && apt-get install -y file && rm -rf /var/lib/apt/lists/*
|
||||||
RUN make binary-clean binary-collector
|
RUN make binary-clean binary-collector
|
||||||
|
|||||||
@@ -6,7 +6,8 @@
|
|||||||
######## Build the frontend
|
######## Build the frontend
|
||||||
FROM --platform=${BUILDPLATFORM} node AS frontendbuild
|
FROM --platform=${BUILDPLATFORM} node AS frontendbuild
|
||||||
WORKDIR /go/src/github.com/analogj/scrutiny
|
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
|
RUN make binary-frontend
|
||||||
|
|
||||||
@@ -14,7 +15,10 @@ RUN make binary-frontend
|
|||||||
FROM golang:1.25-trixie as backendbuild
|
FROM golang:1.25-trixie as backendbuild
|
||||||
|
|
||||||
WORKDIR /go/src/github.com/analogj/scrutiny
|
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 apt-get update && apt-get install -y file && rm -rf /var/lib/apt/lists/*
|
||||||
RUN make binary-clean binary-all WEB_BINARY_NAME=scrutiny
|
RUN make binary-clean binary-all WEB_BINARY_NAME=scrutiny
|
||||||
|
|||||||
Reference in New Issue
Block a user