Skip to content

Commit

Permalink
Create 8.0/official, v8.0.7, Promote 8.0 official to latest, Tag 8.0.…
Browse files Browse the repository at this point in the history
…7 release
  • Loading branch information
goofball222 committed Nov 20, 2023
1 parent 8e31544 commit 19da2fe
Show file tree
Hide file tree
Showing 21 changed files with 978 additions and 41 deletions.
119 changes: 119 additions & 0 deletions .github/workflows/build-7.5-official.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
name: Build 7.5 Official

on:
workflow_dispatch:
push:
branches:
- main
paths:
- 7.5/official/**
- .github/workflows/build-7.5-official.yml

jobs:
build:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Set up dynamic build ARGs
id: getargs
run: echo "version=$(cat ./7.5/official/VERSION)" >> $GITHUB_OUTPUT
-
name: Set up Docker metadata for Alpine
id: meta-alpine
uses: docker/metadata-action@v5
with:
images: |
${{ github.repository }}
ghcr.io/${{ github.repository }}
tags: |
type=raw,7.5-alpine
labels: |
org.opencontainers.image.vendor=The Goofball - goofball222@gmail.com
org.opencontainers.image.title=UniFi Controller
org.opencontainers.image.description=UniFi Controller
org.opencontainers.image.version=${{ steps.getargs.outputs.version }}-Alpine
-
name: Set up Docker metadata for Debian
id: meta-debian
uses: docker/metadata-action@v5
with:
images: |
${{ github.repository }}
ghcr.io/${{ github.repository }}
tags: |
type=raw,7.5
labels: |
org.opencontainers.image.vendor=The Goofball - goofball222@gmail.com
org.opencontainers.image.title=UniFi Controller
org.opencontainers.image.description=UniFi Controller
org.opencontainers.image.version=${{ steps.getargs.outputs.version }}-Debian
-
name: Set up Docker metadata for Ubuntu
id: meta-ubuntu
uses: docker/metadata-action@v5
with:
images: |
${{ github.repository }}
ghcr.io/${{ github.repository }}
tags: |
type=raw,7.5-ubuntu
labels: |
org.opencontainers.image.vendor=The Goofball - goofball222@gmail.com
org.opencontainers.image.title=UniFi Controller
org.opencontainers.image.description=UniFi Controller
org.opencontainers.image.version=${{ steps.getargs.outputs.version }}-Ubuntu
-
name: Set up QEMU
uses: docker/setup-qemu-action@v3
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
-
name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ github.repository_owner }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
-
name: Build and push Alpine Docker image
uses: docker/build-push-action@v5
with:
context: ./7.5/official
file: ./7.5/official/Dockerfile.alpine
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta-alpine.outputs.tags }}
labels: ${{ steps.meta-alpine.outputs.labels }}
build-args: VERSION=${{ steps.getargs.outputs.version }}
-
name: Build and push Debian Docker image
uses: docker/build-push-action@v5
with:
context: ./7.5/official
file: ./7.5/official/Dockerfile
platforms: linux/amd64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta-debian.outputs.tags }}
labels: ${{ steps.meta-debian.outputs.labels }}
build-args: VERSION=${{ steps.getargs.outputs.version }}
-
name: Build and push Ubuntu Docker image
uses: docker/build-push-action@v5
with:
context: ./7.5/official
file: ./7.5/official/Dockerfile.ubuntu
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta-ubuntu.outputs.tags }}
labels: ${{ steps.meta-ubuntu.outputs.labels }}
build-args: VERSION=${{ steps.getargs.outputs.version }}
22 changes: 11 additions & 11 deletions .github/workflows/build-latest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
branches:
- main
paths:
- 7.5/official/**
- 8.0/official/**
- .github/workflows/build-latest.yml

jobs:
Expand All @@ -19,7 +19,7 @@ jobs:
-
name: Set up dynamic build ARGs
id: getargs
run: echo "version=$(cat ./7.5/official/VERSION)" >> $GITHUB_OUTPUT
run: echo "version=$(cat ./8.0/official/VERSION)" >> $GITHUB_OUTPUT
-
name: Set up Docker metadata for Alpine
id: meta-alpine
Expand All @@ -30,7 +30,7 @@ jobs:
ghcr.io/${{ github.repository }}
tags: |
type=raw,latest-alpine
type=raw,7.5-alpine
type=raw,8.0-alpine
labels: |
org.opencontainers.image.vendor=The Goofball - goofball222@gmail.com
org.opencontainers.image.title=UniFi Controller
Expand All @@ -46,7 +46,7 @@ jobs:
ghcr.io/${{ github.repository }}
tags: |
type=raw,latest
type=raw,7.5
type=raw,8.0
labels: |
org.opencontainers.image.vendor=The Goofball - goofball222@gmail.com
org.opencontainers.image.title=UniFi Controller
Expand All @@ -62,7 +62,7 @@ jobs:
ghcr.io/${{ github.repository }}
tags: |
type=raw,latest-ubuntu
type=raw,7.5-ubuntu
type=raw,8.0-ubuntu
labels: |
org.opencontainers.image.vendor=The Goofball - goofball222@gmail.com
org.opencontainers.image.title=UniFi Controller
Expand Down Expand Up @@ -91,8 +91,8 @@ jobs:
name: Build and push Alpine Docker image
uses: docker/build-push-action@v5
with:
context: ./7.5/official
file: ./7.5/official/Dockerfile.alpine
context: ./8.0/official
file: ./8.0/official/Dockerfile.alpine
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta-alpine.outputs.tags }}
Expand All @@ -102,8 +102,8 @@ jobs:
name: Build and push Debian Docker image
uses: docker/build-push-action@v5
with:
context: ./7.5/official
file: ./7.5/official/Dockerfile
context: ./8.0/official
file: ./8.0/official/Dockerfile
platforms: linux/amd64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta-debian.outputs.tags }}
Expand All @@ -113,8 +113,8 @@ jobs:
name: Build and push Ubuntu Docker image
uses: docker/build-push-action@v5
with:
context: ./7.5/official
file: ./7.5/official/Dockerfile.ubuntu
context: ./8.0/official
file: ./8.0/official/Dockerfile.ubuntu
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta-ubuntu.outputs.tags }}
Expand Down
74 changes: 74 additions & 0 deletions 8.0/official/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
FROM debian:bullseye-slim

ARG BUILD_DATE
ARG VCS_REF
ARG VERSION

LABEL \
org.opencontainers.image.vendor="The Goofball - goofball222@gmail.com" \
org.opencontainers.image.url="https://github.com/goofball222/unifi" \
org.opencontainers.image.title="UniFi Controller" \
org.opencontainers.image.description="UniFi Controller" \
org.opencontainers.image.version=${VERSION}-Debian \
org.opencontainers.image.source="https://github.com/goofball222/unifi" \
org.opencontainers.image.revision=${VCS_REF} \
org.opencontainers.image.created=${BUILD_DATE} \
org.opencontainers.image.licenses="Apache-2.0"

ENV \
BIND_PRIV=false \
DEBIAN_FRONTEND=noninteractive \
DEBUG=false \
JVM_EXTRA_OPTS= \
JVM_INIT_HEAP_SIZE= \
JVM_MAX_HEAP_SIZE=1024M \
PGID=999 \
PUID=999 \
RUN_CHOWN=true \
RUNAS_UID0=false

WORKDIR /usr/lib/unifi

COPY root /

RUN set -x \
&& groupadd -r unifi -g $PGID \
&& useradd --no-log-init -r -u $PUID -g $PGID unifi \
&& mkdir -p /usr/share/man/man1 \
&& apt-get -qqy update \
&& apt-get -qqy install apt-utils \
&& apt-get -qqy --no-install-recommends install \
dirmngr gnupg2 > /dev/null \
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/3.6 main" \
> /etc/apt/sources.list.d/mongodb-org.list \
&& apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
&& apt-get -qqy update \
&& apt-get -qqy --no-install-recommends install \
binutils curl gosu \
libcap2 libcap2-bin procps > /dev/null \
&& apt-get -qqy --no-install-recommends install \
ca-certificates-java > /dev/null \
&& apt-get -qqy --no-install-recommends install \
openjdk-17-jre-headless > /dev/null \
&& apt-get -qqy --no-install-recommends install \
mongodb-org-server > /dev/null \
&& curl -sSL https://dl.ui.com/unifi/${VERSION}/unifi_sysvinit_all.deb -o /tmp/unifi-${VERSION}.deb \
&& apt-get -qqy purge \
apt-utils dirmngr gnupg2 > /dev/null \
&& apt-get -qqy autoremove --purge > /dev/null \
&& apt-get -qqy clean autoclean > /dev/null \
&& dpkg --force-all -i /tmp/unifi-${VERSION}.deb \
&& rm -rf data logs run \
&& bash -c 'mkdir -p {data,logs,run,cert}' \
&& chown -R unifi:unifi /usr/lib/unifi \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /var/log/*

EXPOSE 3478/udp 6789/tcp 8080/tcp 8443/tcp 8843/tcp 8880/tcp 10001/udp

VOLUME ["/usr/lib/unifi/cert", "/usr/lib/unifi/data", "/usr/lib/unifi/logs"]

HEALTHCHECK --start-period=2m CMD /usr/local/bin/docker-healthcheck.sh

ENTRYPOINT ["docker-entrypoint.sh"]

CMD ["unifi"]
58 changes: 58 additions & 0 deletions 8.0/official/Dockerfile.alpine
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
FROM alpine:latest

ARG BUILD_DATE
ARG VCS_REF
ARG VERSION

LABEL \
org.opencontainers.image.vendor="The Goofball - goofball222@gmail.com" \
org.opencontainers.image.url="https://github.com/goofball222/unifi" \
org.opencontainers.image.title="UniFi Controller" \
org.opencontainers.image.description="UniFi Controller" \
org.opencontainers.image.version=${VERSION}-Alpine \
org.opencontainers.image.source="https://github.com/goofball222/unifi" \
org.opencontainers.image.revision=${VCS_REF} \
org.opencontainers.image.created=${BUILD_DATE} \
org.opencontainers.image.licenses="Apache-2.0"

ENV \
BIND_PRIV=false \
DEBUG=false \
JVM_EXTRA_OPTS= \
JVM_INIT_HEAP_SIZE= \
JVM_MAX_HEAP_SIZE=1024M \
PGID=999 \
PUID=999 \
RUN_CHOWN=true \
RUNAS_UID0=false

WORKDIR /usr/lib/unifi

COPY root /

RUN set -x \
&& delgroup ping \
&& addgroup -g $PGID unifi \
&& adduser -D -G unifi -u $PUID unifi \
&& apk add -q --no-cache \
gcompat libc6-compat \
&& apk add -q --no-cache \
bash binutils coreutils curl libcap \
openjdk17-jre openssl shadow su-exec \
tzdata \
&& curl -sSL https://dl.ui.com/unifi/${VERSION}/UniFi.unix.zip -o /tmp/UniFi.unix.${VERSION}.zip \
&& unzip -q /tmp/UniFi.unix.${VERSION}.zip -d /tmp \
&& mv /tmp/UniFi/* /usr/lib/unifi/ \
&& bash -c 'mkdir -p {data,logs,run,cert}' \
&& chown -R unifi:unifi /usr/lib/unifi \
&& rm -rf /tmp/* /var/tmp/* /var/cache/apk/*

EXPOSE 3478/udp 6789/tcp 8080/tcp 8443/tcp 8843/tcp 8880/tcp 10001/udp

VOLUME ["/usr/lib/unifi/cert", "/usr/lib/unifi/data", "/usr/lib/unifi/logs"]

HEALTHCHECK --start-period=2m CMD /usr/local/bin/docker-healthcheck.sh

ENTRYPOINT ["docker-entrypoint.sh"]

CMD ["unifi"]
60 changes: 60 additions & 0 deletions 8.0/official/Dockerfile.alpine.mongo
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
FROM alpine:latest

ARG BUILD_DATE
ARG VCS_REF
ARG VERSION

LABEL \
org.opencontainers.image.vendor="The Goofball - goofball222@gmail.com" \
org.opencontainers.image.url="https://github.com/goofball222/unifi" \
org.opencontainers.image.title="UniFi Controller" \
org.opencontainers.image.description="UniFi Controller" \
org.opencontainers.image.version=${VERSION}-Alpine.mongo \
org.opencontainers.image.source="https://github.com/goofball222/unifi" \
org.opencontainers.image.revision=${VCS_REF} \
org.opencontainers.image.created=${BUILD_DATE} \
org.opencontainers.image.licenses="Apache-2.0"

ENV \
BIND_PRIV=false \
DEBUG=false \
JVM_EXTRA_OPTS= \
JVM_INIT_HEAP_SIZE= \
JVM_MAX_HEAP_SIZE=1024M \
PGID=999 \
PUID=999 \
RUN_CHOWN=true \
RUNAS_UID0=false

WORKDIR /usr/lib/unifi

COPY root /

RUN set -x \
&& delgroup ping \
&& addgroup -g $PGID unifi \
&& adduser -D -G unifi -u $PUID unifi \
&& apk add -q --no-cache \
gcompat libc6-compat \
&& apk add -q --no-cache \
bash binutils coreutils curl libcap \
mongodb openjdk17-jre openssl shadow su-exec \
tzdata \
&& curl -sSL https://dl.ui.com/unifi/${VERSION}/UniFi.unix.zip -o /tmp/UniFi.unix.${VERSION}.zip \
&& unzip -q /tmp/UniFi.unix.${VERSION}.zip -d /tmp \
&& mv /tmp/UniFi/* /usr/lib/unifi/ \
&& bash -c 'mkdir -p {data,logs,run,cert}' \
&& chown -R unifi:unifi /usr/lib/unifi \
&& rm /usr/lib/unifi/bin/mongod \
&& ln -s /usr/bin/mongod /usr/lib/unifi/bin/mongod \
&& rm -rf /tmp/* /var/tmp/* /var/cache/apk/*

EXPOSE 3478/udp 6789/tcp 8080/tcp 8443/tcp 8843/tcp 8880/tcp 10001/udp

VOLUME ["/usr/lib/unifi/cert", "/usr/lib/unifi/data", "/usr/lib/unifi/logs"]

HEALTHCHECK --start-period=2m CMD /usr/local/bin/docker-healthcheck.sh

ENTRYPOINT ["docker-entrypoint.sh"]

CMD ["unifi"]
Loading

0 comments on commit 19da2fe

Please sign in to comment.