mirror of
https://github.com/buanet/ioBroker.docker.git
synced 2026-01-04 07:03:02 +02:00
testing multiarch
This commit is contained in:
32
.github/workflows/build-debian-image-dev.yml
vendored
32
.github/workflows/build-debian-image-dev.yml
vendored
@@ -1,5 +1,5 @@
|
|||||||
# Github action to build Docker image from dev branch (tag: dev)
|
# Github action to build Docker image from dev branch (tag: dev)
|
||||||
name: Build debian based image from dev
|
name: Build debian based image (dev)
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
@@ -8,7 +8,7 @@ on:
|
|||||||
- dev
|
- dev
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
bulid-dev:
|
bulid-dev-image:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repo (dev)
|
- name: Checkout repo (dev)
|
||||||
@@ -61,7 +61,7 @@ jobs:
|
|||||||
username: ${{ secrets.PACKAGES_USER }}
|
username: ${{ secrets.PACKAGES_USER }}
|
||||||
password: ${{ secrets.PACKAGES_PASS }}
|
password: ${{ secrets.PACKAGES_PASS }}
|
||||||
|
|
||||||
- name: Build Docker image (slim-amd64)
|
- name: Build Docker image (amd64)
|
||||||
uses: docker/build-push-action@v2.6.1
|
uses: docker/build-push-action@v2.6.1
|
||||||
with:
|
with:
|
||||||
context: ./debian
|
context: ./debian
|
||||||
@@ -72,12 +72,34 @@ jobs:
|
|||||||
buanet/iobroker:dev-amd64,
|
buanet/iobroker:dev-amd64,
|
||||||
ghcr.io/buanet/iobroker:dev-amd64
|
ghcr.io/buanet/iobroker:dev-amd64
|
||||||
|
|
||||||
|
- name: Build Docker image (arm32v7)
|
||||||
|
uses: docker/build-push-action@v2.6.1
|
||||||
|
with:
|
||||||
|
context: ./debian
|
||||||
|
file: ./debian/Dockerfile-arm32v7
|
||||||
|
push: true
|
||||||
|
platforms: linux/arm/v7
|
||||||
|
tags: |
|
||||||
|
buanet/iobroker:dev-arm32v7,
|
||||||
|
ghcr.io/buanet/iobroker:dev-arm32v7
|
||||||
|
|
||||||
|
- name: Build Docker image (arm64v8)
|
||||||
|
uses: docker/build-push-action@v2.6.1
|
||||||
|
with:
|
||||||
|
context: ./debian
|
||||||
|
file: ./debian/Dockerfile-arm84v8
|
||||||
|
push: true
|
||||||
|
platforms: linux/arm64/v8
|
||||||
|
tags: |
|
||||||
|
buanet/iobroker:dev-arm64v8,
|
||||||
|
ghcr.io/buanet/iobroker:dev-arm64v8
|
||||||
|
|
||||||
- name: Create and push manifests
|
- name: Create and push manifests
|
||||||
run: |
|
run: |
|
||||||
sed -e "s/\${VERSION}/dev/g" -e "s/\${DOCKERTAG}/dev/g" ./manifest.yml > manifest_dev.yaml
|
sed -e "s/\${VERSION}/dev/g" -e "s/\${DOCKERTAG}/dev/g" ./manifest.yml > manifest_dev.yaml
|
||||||
#./manifest-tool --username ${{ secrets.DOCKER_USER }} --password ${{ secrets.DOCKER_PASS }} push from-spec manifest_dev.yaml
|
./manifest-tool --username ${{ secrets.DOCKER_USER }} --password ${{ secrets.DOCKER_PASS }} push from-spec manifest_dev.yaml
|
||||||
sed -e "s/\${VERSION}/dev/g" -e "s/\${DOCKERTAG}/dev/g" ./manifest_ghcr.yml > manifest_ghcr_dev.yaml
|
sed -e "s/\${VERSION}/dev/g" -e "s/\${DOCKERTAG}/dev/g" ./manifest_ghcr.yml > manifest_ghcr_dev.yaml
|
||||||
#./manifest-tool --username ${{ secrets.PACKAGES_USER }} --password ${{ secrets.PACKAGES_PASS }} push from-spec manifest_ghcr_dev.yaml
|
./manifest-tool --username ${{ secrets.PACKAGES_USER }} --password ${{ secrets.PACKAGES_PASS }} push from-spec manifest_ghcr_dev.yaml
|
||||||
|
|
||||||
- name: Delete untagged images from GitHub packages
|
- name: Delete untagged images from GitHub packages
|
||||||
uses: actions/github-script@v3
|
uses: actions/github-script@v3
|
||||||
|
|||||||
83
debian/Dockerfile-arm32v7
vendored
Normal file
83
debian/Dockerfile-arm32v7
vendored
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
FROM debian:bullseye-slim
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.title="ioBroker Docker Image" \
|
||||||
|
org.opencontainers.image.description="Docker image for ioBroker smarthome software" \
|
||||||
|
org.opencontainers.image.authors="info@buanet.de" \
|
||||||
|
org.opencontainers.image.url="https://github.com/buanet/ioBroker.docker" \
|
||||||
|
org.opencontainers.image.version="${VERSION}" \
|
||||||
|
org.opencontainers.image.created="${DATI}"
|
||||||
|
|
||||||
|
ENV DEBIAN_FRONTEND noninteractive
|
||||||
|
|
||||||
|
# Install prerequisites
|
||||||
|
RUN apt-get update && apt-get install -y \
|
||||||
|
curl \
|
||||||
|
gosu \
|
||||||
|
jq \
|
||||||
|
locales \
|
||||||
|
procps \
|
||||||
|
sudo \
|
||||||
|
udev \
|
||||||
|
wget \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Install node
|
||||||
|
RUN curl -sL https://deb.nodesource.com/setup_12.x | bash \
|
||||||
|
&& apt-get update && apt-get install -y nodejs \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Generating locales
|
||||||
|
RUN sed -i 's/^# *\(de_DE.UTF-8\)/\1/' /etc/locale.gen \
|
||||||
|
&& sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \
|
||||||
|
&& locale-gen
|
||||||
|
|
||||||
|
# Create scripts directorys and copy scripts
|
||||||
|
RUN mkdir -p /opt/scripts/ \
|
||||||
|
&& mkdir -p /opt/userscripts/ \
|
||||||
|
&& chmod 777 /opt/scripts/ \
|
||||||
|
&& chmod 777 /opt/userscripts/
|
||||||
|
WORKDIR /opt/scripts/
|
||||||
|
COPY scripts/* ./
|
||||||
|
RUN chmod +x *.sh
|
||||||
|
WORKDIR /opt/userscripts/
|
||||||
|
COPY scripts/* ./
|
||||||
|
RUN chmod +x *.sh
|
||||||
|
|
||||||
|
# Install ioBroker
|
||||||
|
WORKDIR /
|
||||||
|
RUN apt-get update \
|
||||||
|
&& curl -sL https://iobroker.net/install.sh | bash - \
|
||||||
|
&& mkdir -p /opt/scripts/.docker_config/ \
|
||||||
|
&& echo $(hostname) > /opt/scripts/.docker_config/.install_host \
|
||||||
|
&& echo "starting" > /opt/scripts/.docker_config/.healthcheck \
|
||||||
|
&& echo $(hostname) > /opt/.firstrun \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Backup initial ioBroker and userscript folder
|
||||||
|
RUN tar -cf /opt/initial_iobroker.tar /opt/iobroker \
|
||||||
|
&& tar -cf /opt/initial_userscripts.tar /opt/userscripts
|
||||||
|
|
||||||
|
# Setting up iobroker-user (shell and home directory)
|
||||||
|
RUN chsh -s /bin/bash iobroker \
|
||||||
|
&& usermod --home /opt/iobroker iobroker \
|
||||||
|
&& usermod -u 1000 iobroker \
|
||||||
|
&& groupmod -g 1000 iobroker
|
||||||
|
|
||||||
|
# Setting up ENVs
|
||||||
|
ENV DEBIAN_FRONTEND="teletype" \
|
||||||
|
LANG="de_DE.UTF-8" \
|
||||||
|
LANGUAGE="de_DE:de" \
|
||||||
|
LC_ALL="de_DE.UTF-8" \
|
||||||
|
SETGID=1000 \
|
||||||
|
SETUID=1000 \
|
||||||
|
TZ="Europe/Berlin"
|
||||||
|
|
||||||
|
# Expose default admin ui port
|
||||||
|
EXPOSE 8081
|
||||||
|
|
||||||
|
# Healthcheck
|
||||||
|
HEALTHCHECK --interval=15s --timeout=5s --retries=5 \
|
||||||
|
CMD ["/bin/bash", "-c", "/opt/scripts/healthcheck.sh"]
|
||||||
|
|
||||||
|
# Run startup-script
|
||||||
|
ENTRYPOINT ["/bin/bash", "-c", "/opt/scripts/iobroker_startup.sh"]
|
||||||
83
debian/Dockerfile-arm64v8
vendored
Normal file
83
debian/Dockerfile-arm64v8
vendored
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
FROM debian:bullseye-slim
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.title="ioBroker Docker Image" \
|
||||||
|
org.opencontainers.image.description="Docker image for ioBroker smarthome software" \
|
||||||
|
org.opencontainers.image.authors="info@buanet.de" \
|
||||||
|
org.opencontainers.image.url="https://github.com/buanet/ioBroker.docker" \
|
||||||
|
org.opencontainers.image.version="${VERSION}" \
|
||||||
|
org.opencontainers.image.created="${DATI}"
|
||||||
|
|
||||||
|
ENV DEBIAN_FRONTEND noninteractive
|
||||||
|
|
||||||
|
# Install prerequisites
|
||||||
|
RUN apt-get update && apt-get install -y \
|
||||||
|
curl \
|
||||||
|
gosu \
|
||||||
|
jq \
|
||||||
|
locales \
|
||||||
|
procps \
|
||||||
|
sudo \
|
||||||
|
udev \
|
||||||
|
wget \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Install node
|
||||||
|
RUN curl -sL https://deb.nodesource.com/setup_12.x | bash \
|
||||||
|
&& apt-get update && apt-get install -y nodejs \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Generating locales
|
||||||
|
RUN sed -i 's/^# *\(de_DE.UTF-8\)/\1/' /etc/locale.gen \
|
||||||
|
&& sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \
|
||||||
|
&& locale-gen
|
||||||
|
|
||||||
|
# Create scripts directorys and copy scripts
|
||||||
|
RUN mkdir -p /opt/scripts/ \
|
||||||
|
&& mkdir -p /opt/userscripts/ \
|
||||||
|
&& chmod 777 /opt/scripts/ \
|
||||||
|
&& chmod 777 /opt/userscripts/
|
||||||
|
WORKDIR /opt/scripts/
|
||||||
|
COPY scripts/* ./
|
||||||
|
RUN chmod +x *.sh
|
||||||
|
WORKDIR /opt/userscripts/
|
||||||
|
COPY scripts/* ./
|
||||||
|
RUN chmod +x *.sh
|
||||||
|
|
||||||
|
# Install ioBroker
|
||||||
|
WORKDIR /
|
||||||
|
RUN apt-get update \
|
||||||
|
&& curl -sL https://iobroker.net/install.sh | bash - \
|
||||||
|
&& mkdir -p /opt/scripts/.docker_config/ \
|
||||||
|
&& echo $(hostname) > /opt/scripts/.docker_config/.install_host \
|
||||||
|
&& echo "starting" > /opt/scripts/.docker_config/.healthcheck \
|
||||||
|
&& echo $(hostname) > /opt/.firstrun \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Backup initial ioBroker and userscript folder
|
||||||
|
RUN tar -cf /opt/initial_iobroker.tar /opt/iobroker \
|
||||||
|
&& tar -cf /opt/initial_userscripts.tar /opt/userscripts
|
||||||
|
|
||||||
|
# Setting up iobroker-user (shell and home directory)
|
||||||
|
RUN chsh -s /bin/bash iobroker \
|
||||||
|
&& usermod --home /opt/iobroker iobroker \
|
||||||
|
&& usermod -u 1000 iobroker \
|
||||||
|
&& groupmod -g 1000 iobroker
|
||||||
|
|
||||||
|
# Setting up ENVs
|
||||||
|
ENV DEBIAN_FRONTEND="teletype" \
|
||||||
|
LANG="de_DE.UTF-8" \
|
||||||
|
LANGUAGE="de_DE:de" \
|
||||||
|
LC_ALL="de_DE.UTF-8" \
|
||||||
|
SETGID=1000 \
|
||||||
|
SETUID=1000 \
|
||||||
|
TZ="Europe/Berlin"
|
||||||
|
|
||||||
|
# Expose default admin ui port
|
||||||
|
EXPOSE 8081
|
||||||
|
|
||||||
|
# Healthcheck
|
||||||
|
HEALTHCHECK --interval=15s --timeout=5s --retries=5 \
|
||||||
|
CMD ["/bin/bash", "-c", "/opt/scripts/healthcheck.sh"]
|
||||||
|
|
||||||
|
# Run startup-script
|
||||||
|
ENTRYPOINT ["/bin/bash", "-c", "/opt/scripts/iobroker_startup.sh"]
|
||||||
Reference in New Issue
Block a user