diff --git a/.dockerignore b/.dockerignore index 195816037..2687e58a8 100644 --- a/.dockerignore +++ b/.dockerignore @@ -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 diff --git a/.github/workflows/docker-image-matrix.yml b/.github/workflows/docker-image-matrix.yml index df334685c..1c1a985dd 100644 --- a/.github/workflows/docker-image-matrix.yml +++ b/.github/workflows/docker-image-matrix.yml @@ -18,6 +18,7 @@ jobs: strategy: matrix: os: [buster, bullseye, bookworm] + java: [true, false] runs-on: ubuntu-latest steps: @@ -36,13 +37,23 @@ 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: @@ -50,6 +61,7 @@ jobs: password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push + if: ${{ ! matrix.java }} uses: docker/build-push-action@v5 with: context: . @@ -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 diff --git a/Dockerfile.bookworm b/Dockerfile.bookworm index 9aa34f1d0..0df0ed231 100644 --- a/Dockerfile.bookworm +++ b/Dockerfile.bookworm @@ -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 @@ -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/* \ diff --git a/Dockerfile.bullseye b/Dockerfile.bullseye index d86494ea3..d1785e46d 100644 --- a/Dockerfile.bullseye +++ b/Dockerfile.bullseye @@ -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 @@ -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/* \ diff --git a/Dockerfile.buster b/Dockerfile.buster index 4e446c443..77fb11110 100644 --- a/Dockerfile.buster +++ b/Dockerfile.buster @@ -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 @@ -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/* \ diff --git a/Makefile b/Makefile index 53d7945bd..e18fdeaf0 100644 --- a/Makefile +++ b/Makefile @@ -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