mirror of
https://github.com/zokradonh/kopano-docker.git
synced 2026-08-20 04:43:06 +00:00
touch the running system...
This commit is contained in:
+30
-43
@@ -1,34 +1,8 @@
|
||||
# syntax = docker/dockerfile:1.3-labs
|
||||
FROM debian:buster
|
||||
|
||||
ARG ADDITIONAL_KOPANO_PACKAGES=""
|
||||
ARG DOWNLOAD_COMMUNITY_PACKAGES=1
|
||||
ARG KOPANO_CORE_REPOSITORY_URL="file:/kopano/repo/core"
|
||||
ARG KOPANO_CORE_VERSION=newest
|
||||
ARG KOPANO_REPOSITORY_FLAGS=""
|
||||
|
||||
# Both UID and GID should not be set to values above 999
|
||||
ARG KOPANO_UID=999
|
||||
ARG KOPANO_GID=999
|
||||
|
||||
ENV \
|
||||
AUTOCONFIGURE=true \
|
||||
BASE_VERSION=2.2.0 \
|
||||
DEBIAN_FRONTEND=noninteractive \
|
||||
DEBUG=""
|
||||
|
||||
LABEL maintainer=az@zok.xyz \
|
||||
org.label-schema.name="Kopano base container" \
|
||||
org.label-schema.description="Base image for containers running the Kopano groupware stack" \
|
||||
org.label-schema.url="https://kopano.io" \
|
||||
org.label-schema.vcs-url="https://github.com/zokradonh/kopano-docker" \
|
||||
org.label-schema.version=$BASE_VERSION \
|
||||
org.label-schema.schema-version="1.0"
|
||||
|
||||
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||
|
||||
RUN mkdir -p /kopano/repo /kopano/data /kopano/helper /kopano/path
|
||||
WORKDIR /kopano/repo
|
||||
|
||||
# install basics
|
||||
RUN apt-get update && \
|
||||
apt-get install --no-install-recommends -y \
|
||||
@@ -46,6 +20,21 @@ RUN apt-get update && \
|
||||
&& \
|
||||
rm -rf /var/cache/apt /var/lib/apt/lists/*
|
||||
|
||||
ARG ADDITIONAL_KOPANO_PACKAGES=""
|
||||
|
||||
# Both UID and GID should not be set to values above 999
|
||||
ARG KOPANO_UID=999
|
||||
ARG KOPANO_GID=999
|
||||
|
||||
ENV \
|
||||
AUTOCONFIGURE=true \
|
||||
BASE_VERSION=2.2.0 \
|
||||
DEBIAN_FRONTEND=noninteractive \
|
||||
DEBUG=""
|
||||
|
||||
RUN mkdir -p /kopano/repo /kopano/data /kopano/helper /kopano/path
|
||||
WORKDIR /kopano/repo
|
||||
|
||||
# Create kopano user and group
|
||||
RUN groupadd --system --gid ${KOPANO_GID} kopano
|
||||
RUN useradd --system --shell /usr/sbin/nologin --home /var/lib/kopano --gid ${KOPANO_GID} --uid ${KOPANO_UID} kopano
|
||||
@@ -68,24 +57,22 @@ RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \
|
||||
update-locale LANG=en_US.UTF-8
|
||||
|
||||
# get common utilities
|
||||
COPY create-kopano-repo.sh /kopano/helper/
|
||||
COPY kcconf.py Release.key defaultconfigs/ /kopano/
|
||||
RUN apt-key add /kopano/Release.key
|
||||
COPY kcconf.py defaultconfigs/ /kopano/
|
||||
# add apt key for later use
|
||||
RUN --mount=type=bind,target=/kopano/repo,source=/kopano/repo,from=kopano_repo_helper \
|
||||
APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add /kopano/repo/Release.key
|
||||
|
||||
# TODO: replace by org.opencontainers.image.* and set by GitHub Action instead of Dockerfile LABEL-instruction. Only set labels that might be useful in local builds
|
||||
LABEL maintainer=az@zok.xyz \
|
||||
org.label-schema.name="Kopano base container" \
|
||||
org.label-schema.description="Base image for containers running the Kopano groupware stack" \
|
||||
org.label-schema.url="https://kopano.io" \
|
||||
org.label-schema.vcs-url="https://github.com/zokradonh/kopano-docker" \
|
||||
org.label-schema.version=$BASE_VERSION \
|
||||
org.label-schema.schema-version="1.0"
|
||||
|
||||
|
||||
SHELL [ "/bin/bash", "-c"]
|
||||
|
||||
ONBUILD ARG DOWNLOAD_COMMUNITY_PACKAGES=1
|
||||
ONBUILD ARG DOWNLOAD_DISTRIBUTION="Debian_10"
|
||||
ONBUILD ARG DOWNLOAD_CHANNEL="community"
|
||||
ONBUILD ARG DOWNLOAD_BRANCH=""
|
||||
ONBUILD WORKDIR /kopano/repo
|
||||
ONBUILD RUN \
|
||||
# community download and package as apt source repository
|
||||
. /kopano/helper/create-kopano-repo.sh && \
|
||||
if [ ${DOWNLOAD_COMMUNITY_PACKAGES} -eq 1 ]; then \
|
||||
dl_and_package_community "core" "$DOWNLOAD_DISTRIBUTION" "$DOWNLOAD_CHANNEL" "$DOWNLOAD_BRANCH"; \
|
||||
dl_and_package_community "kapps" "$DOWNLOAD_DISTRIBUTION" "$DOWNLOAD_CHANNEL" "$DOWNLOAD_BRANCH"; \
|
||||
fi
|
||||
|
||||
ARG VCS_REF
|
||||
LABEL org.label-schema.vcs-ref=$VCS_REF
|
||||
@@ -1,51 +0,0 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
eamO0aVuw7GkwAoXoMowzGJjHP+bBWrDudfiLwZBpIHg2Ogct5ZxKpgr9Tx0hwix
|
||||
qfTj4eO0m76j070/hvgRnQARAQABiQIlBBgBAgAPBQJXI2pPAhsMBQkJZgGAAAoJ
|
||||
EFyyfhNY4vKnRC8P/jy75oYazCRhOjuNI7fPr2a546bjx4TCNMZPy3qnWg9qMwBx
|
||||
8zNsx9cAg3dK4aQLN4vacPRZypVt4gKoGT2yalyVq+mE3roSAykjW+56efO6JGIP
|
||||
/y7HyQb3F5tzbMJb55M1D0zeQJJLvCut2U0M9T8s9zii2N0MybUWgSEx/IHmTxO9
|
||||
MEZoRBPjJkfRBnhpJ9jSiPthEutk2E+xMtti82RqWn5antUxdvZ+AXrn9VXxM1kU
|
||||
VZy0OJZL4tPf4w3S+yGYjOte7BEhDus+8PA+srfdroSSA+891fGDojo2nFzC4a4M
|
||||
vIPqutxy6Mu+WksRVA4w3E8WINuwEEpmsU/sWvSmJjaNu7EuZmTiF/gPapo8r6b1
|
||||
XX3vtPE6UETsvnGn2IKjsAzHcdx5KYpGpXT75g46yRqvwk4b0wsVDA2/rXCTp4N9
|
||||
yvINmZ0IcDqBG1RYwRdKjSN4TX+vPtu4ciDZTvTcgf7A2u/M/bc5MxZscjex6pno
|
||||
/vS6N8yV71sGaKpQJOJNNU4NvdgnajWMJ9IVchwGWJFGuY89oSzW+D9MZcYKhJKg
|
||||
U7N7JgDYUknY1xJpwT+XFjWBGbBjQAEQPQPcGerTCjRG9ijCsrytl2uRMGbFXueL
|
||||
YmCVCErITLjX9gvcxPH38wxMkO6MQnrvNSV8dBGwhY2E0nJfBT/amTwXoNjm
|
||||
=TAfQ
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
@@ -1,64 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
[ "$DEBUG" ] && set -x
|
||||
|
||||
function urldecode { : "${*//+/ }"; echo -e "${_//%/\\x}"; }
|
||||
|
||||
function version_from_filename {
|
||||
basename "$1" | awk -F"-" '{print $2}'
|
||||
}
|
||||
|
||||
function h5ai_query {
|
||||
component=${1:-core}
|
||||
distribution=${2:-Debian_10}
|
||||
channel=${3:-community} # could either be community, supported or limited
|
||||
branch=${4:-""} # could either be empty, "master/tarballs/", "pre-final/tarballs/" or "final/tarballs/"
|
||||
|
||||
filename=$(curl -s -XPOST "https://download.kopano.io/$channel/?action=get&items\[href\]=/$channel/$component:/$branch&items\[what\]=1" | \
|
||||
jq -r '.items[].href' | \
|
||||
grep "$distribution-all\|$distribution-amd64" | sed "s#/$channel/$component:/##" | sed "s#/$channel/$component%3A/##")
|
||||
|
||||
if [ -z "${filename// }" ]; then
|
||||
echo "unknown component"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
filename=$(urldecode "$filename")
|
||||
echo "$filename"
|
||||
}
|
||||
|
||||
function dl_and_package_community {
|
||||
# take component as first argument and fallback to core if none given
|
||||
component=${1:-core}
|
||||
distribution=${2:-Debian_10}
|
||||
channel=${3:-community}
|
||||
branch=${4:-""}
|
||||
|
||||
if [ -d "$component" ]; then
|
||||
echo "Packages have been downloaded in a previous stage. Skipping..."
|
||||
return
|
||||
fi
|
||||
|
||||
# query community server by h5ai API
|
||||
filename=$(h5ai_query "$component" "$distribution" "$channel" "$branch")
|
||||
filename2=$(basename "$filename")
|
||||
|
||||
# download & extract packages
|
||||
curl -s -S -L -o "$filename2" https://download.kopano.io/"$channel"/"$component":/"${filename}"
|
||||
tar xf "$filename2"
|
||||
|
||||
# save buildversion
|
||||
#currentVersion=$(version_from_filename "$filename")
|
||||
#echo "$component-$currentVersion" >> /kopano/buildversion
|
||||
|
||||
# save disk space
|
||||
rm "$filename2"
|
||||
|
||||
mv "${filename2%.tar.gz}" "$component"
|
||||
|
||||
# prepare directory to be apt source
|
||||
cd "$component"
|
||||
apt-ftparchive packages . | gzip -9c > Packages.gz
|
||||
cd ".."
|
||||
}
|
||||
Reference in New Issue
Block a user