Skip to content

Commit

Permalink
Split docker builds with/without java
Browse files Browse the repository at this point in the history
  • Loading branch information
theyosh committed May 29, 2024
1 parent 679d717 commit 2b2bacf
Show file tree
Hide file tree
Showing 6 changed files with 49 additions and 18 deletions.
16 changes: 7 additions & 9 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,10 @@ postcss.config.cjs
# Gui parts
.env.dev.json
node_modules

# gui
# gui/*
#.env.*
# html-template.js
# package-lock.json
# package.json
# postcss.config.js
# rollup.config.js
gui
.env.*
html-template.js
package-lock.json
package.json
postcss.config.js
rollup.config.js
30 changes: 29 additions & 1 deletion .github/workflows/docker-image-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ jobs:
strategy:
matrix:
os: [buster, bullseye, bookworm]
java: [true, false]

runs-on: ubuntu-latest
steps:
Expand All @@ -36,20 +37,31 @@ jobs:

- name: Docker meta
id: meta
if: ${{ ! matrix.java }}
uses: docker/metadata-action@v5
with:
images: theyosh/terrariumpi
flavor: |
latest=${{ matrix.os == 'buster' }}
suffix=-${{ matrix.os }},onlatest=false
- name: Docker meta - Java
id: metajava
if: ${{ matrix.java }}
uses: docker/metadata-action@v5
with:
images: theyosh/terrariumpi
flavor: |
latest=${{ matrix.os == 'buster' }}
suffix=-${{ matrix.os }}-java,onlatest=false
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Build and push
if: ${{ ! matrix.java }}
uses: docker/build-push-action@v5
with:
context: .
Expand All @@ -62,3 +74,19 @@ jobs:
cache-to: type=gha,mode=max
build-args: |
GITHUB_SHA=${{ github.sha }}
- name: Build and push - Java
if: ${{ matrix.java }}
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile.${{ matrix.os }}
push: true
tags: ${{ steps.metajava.outputs.tags }}
labels: ${{ steps.metajava.outputs.labels }}
platforms: linux/arm/v7
cache-from: type=gha
cache-to: type=gha,mode=max
build-args: |
GITHUB_SHA=${{ github.sha }}
JAVA=default-jre-headless
5 changes: 3 additions & 2 deletions Dockerfile.bookworm
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,8 @@ RUN rm -Rf .git 3rdparty gui package*.json postcss.config.js rollup.config.js .e

# actual image
FROM python:3.11-slim-bookworm as finalimage
ARG GITHUB_SHA
ARG GITHUB_SHA="development"
ARG JAVA=""
ENV PYTHONUNBUFFERED=1
ENV PYTHONDONTWRITEBYTECODE=1
ENV DEBIAN_FRONTEND=noninteractive
Expand All @@ -84,7 +85,7 @@ RUN apt-get update \
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 9165938D90FDDD2E 82B129927FA3303E \
&& apt-get update \
&& apt-get full-upgrade -y --no-install-recommends \
&& apt-get install -y --no-install-recommends sudo pigpio ffmpeg libxslt1.1 libftdi1 libatlas3-base libgfortran5 libraspberrypi-bin default-jre-headless python3-opencv \
&& apt-get install -y --no-install-recommends sudo pigpio ffmpeg libxslt1.1 libftdi1 libatlas3-base libgfortran5 libraspberrypi-bin ${JAVA} python3-opencv \
&& apt-get --purge autoremove -y \
&& apt-get autoclean \
&& rm -rf /var/lib/apt/lists/* \
Expand Down
5 changes: 3 additions & 2 deletions Dockerfile.bullseye
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,8 @@ RUN rm -Rf .git 3rdparty gui package*.json postcss.config.js rollup.config.js .e

# actual image
FROM python:3.9-slim-bullseye as finalimage
ARG GITHUB_SHA
ARG GITHUB_SHA="development"
ARG JAVA=""
ENV PYTHONUNBUFFERED=1
ENV PYTHONDONTWRITEBYTECODE=1
ENV DEBIAN_FRONTEND=noninteractive
Expand All @@ -71,7 +72,7 @@ RUN apt-get update \
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 9165938D90FDDD2E 82B129927FA3303E \
&& apt-get update \
&& apt-get full-upgrade -y --no-install-recommends \
&& apt-get install -y --no-install-recommends sudo pigpio ffmpeg libxslt1.1 libftdi1 libatlas3-base libgfortran5 libraspberrypi-bin openjdk-11-jre-headless \
&& apt-get install -y --no-install-recommends sudo pigpio ffmpeg libxslt1.1 libftdi1 libatlas3-base libgfortran5 libraspberrypi-bin ${JAVA} \
&& apt-get --purge autoremove -y \
&& apt-get autoclean \
&& rm -rf /var/lib/apt/lists/* \
Expand Down
5 changes: 3 additions & 2 deletions Dockerfile.buster
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,8 @@ RUN rm -Rf .git 3rdparty gui package*.json postcss.config.js rollup.config.js .e

# actual image
FROM python:3.7-slim-buster as finalimage
ARG GITHUB_SHA
ARG GITHUB_SHA="development"
ARG JAVA=""
ENV PYTHONUNBUFFERED=1
ENV PYTHONDONTWRITEBYTECODE=1
ENV DEBIAN_FRONTEND=noninteractive
Expand All @@ -86,7 +87,7 @@ RUN apt-get update \
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 9165938D90FDDD2E 82B129927FA3303E \
&& apt-get update \
&& apt-get full-upgrade -y --no-install-recommends \
&& apt-get install -y --no-install-recommends sudo pigpio ffmpeg libxslt1.1 libftdi1 libatlas3-base libgfortran5 libraspberrypi-bin openjdk-11-jre-headless \
&& apt-get install -y --no-install-recommends sudo pigpio ffmpeg libxslt1.1 libftdi1 libatlas3-base libgfortran5 libraspberrypi-bin ${JAVA} \
&& apt-get --purge autoremove -y \
&& apt-get autoclean \
&& rm -rf /var/lib/apt/lists/* \
Expand Down
6 changes: 4 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@ all: build push

build:
docker run --privileged tonistiigi/binfmt --install arm
$(foreach var,$(OS),docker buildx build --progress=plain --platform linux/arm/v7 -t $(IMAGE):$(VERSION)-${var} --build-arg GITHUB_SHA=${GITHUB_SHA} -f Dockerfile.${var} .;)
$(foreach var,$(OS),docker buildx build --progress=plain --platform linux/arm/v7 -t $(IMAGE):$(VERSION)-${var}-java --build-arg GITHUB_SHA=${GITHUB_SHA} -f Dockerfile.${var} .;)

push:
docker run --privileged tonistiigi/binfmt --install arm
$(foreach var,$(OS),docker buildx build --progress=plain --platform linux/arm/v7 -t $(IMAGE):$(VERSION)-${var} --build-arg GITHUB_SHA=${GITHUB_SHA} -f Dockerfile.${var} --push .;)
$(foreach var,$(OS),docker buildx build --progress=plain --platform linux/arm/v7 -t $(IMAGE):$(VERSION)-${var} --build-arg GITHUB_SHA=${GITHUB_SHA} --build-arg JAVA=default-jre-headless -f Dockerfile.${var} --push .;)
$(foreach var,$(OS),docker buildx build --progress=plain --platform linux/arm/v7 -t $(IMAGE):$(VERSION)-${var}-java --build-arg GITHUB_SHA=${GITHUB_SHA} --build-arg JAVA=default-jre-headless -f Dockerfile.${var} --push .;)


run: build restart

Expand Down

0 comments on commit 2b2bacf

Please sign in to comment.