mirror of
https://github.com/truecharts/charts.git
synced 2026-07-08 18:11:23 -03:00
Move containers to seperate repository
This commit is contained in:
180
.github/workflows/containers.build.yaml
vendored
180
.github/workflows/containers.build.yaml
vendored
@@ -1,180 +0,0 @@
|
||||
name: "Containers: Test-and-Build"
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- 'containers/apps/**'
|
||||
- 'containers/base/**'
|
||||
- 'containers/dev/**'
|
||||
- ".github/workflows/containers.build.yaml"
|
||||
pull_request:
|
||||
paths:
|
||||
- 'containers/apps/**'
|
||||
- 'containers/base/**'
|
||||
- 'containers/dev/**'
|
||||
- ".github/workflows/containers.build.yaml"
|
||||
|
||||
env:
|
||||
# How long to sleep before running the tests (gives the application time to start)
|
||||
GOSS_SLEEP: 30
|
||||
|
||||
# Detect which folders in project-root (which contain the containers) contain changes
|
||||
jobs:
|
||||
changes:
|
||||
name: Get changes
|
||||
runs-on: ubuntu-20.04
|
||||
outputs:
|
||||
matrix: "{\"container\": ${{ steps.reduce.outputs.containers }} }"
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- uses: dorny/paths-filter@v2
|
||||
id: filter
|
||||
with:
|
||||
list-files: json
|
||||
filters: |
|
||||
changed:
|
||||
- 'containers/apps/**'
|
||||
- 'containers/base/**'
|
||||
- 'containers/dev/**'
|
||||
- run: echo '${{ toJson(steps.filter.outputs) }}' > changes.json
|
||||
- id: reduce
|
||||
run: |
|
||||
CONTAINERS=$(jq --raw-output '.changed_files | fromjson | .[] |= sub("(?<filepath>(?<first_directory>(?<root1>[\/]?)[^\/]+\/)(?<second_directory>(?<root2>[\/]?)[^\/]+\/(?<third_directory>(?<root3>[\/]?)[^\/]+)(?<extra_paths>.+)))"; "\(.third_directory)") | unique' changes.json)
|
||||
echo ::set-output name=containers::${CONTAINERS}
|
||||
|
||||
hadolint:
|
||||
name: Run hadolint
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: hadolint
|
||||
uses: reviewdog/action-hadolint@v1.25.0
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
reporter: github-pr-review
|
||||
filter_mode: diff_context
|
||||
fail_on_error: true
|
||||
|
||||
build:
|
||||
name: Build
|
||||
runs-on: ubuntu-20.04
|
||||
needs:
|
||||
- hadolint
|
||||
- changes
|
||||
strategy:
|
||||
matrix: ${{ fromJson(needs.changes.outputs.matrix) }}
|
||||
fail-fast: false
|
||||
if: "!contains(github.event.head_commit.message, '[ci-skip]')"
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
# Define if tests and push should be run against which versions/platforms
|
||||
- name: Prepare
|
||||
id: prep
|
||||
run: |
|
||||
if test -f "./containers/apps/${{ matrix.container }}/Dockerfile"; then
|
||||
CATEGORY="apps"
|
||||
elif test -f "./containers/dev/${{ matrix.container }}/Dockerfile"; then
|
||||
CATEGORY="dev"
|
||||
else
|
||||
CATEGORY="base"
|
||||
fi
|
||||
echo ::set-output name=category::${CATEGORY}
|
||||
VERSION=$(cat ./containers/${CATEGORY}/${{ matrix.container }}/VERSION)
|
||||
echo ::set-output name=version::${VERSION}
|
||||
PLATFORM="linux/amd64"
|
||||
echo ::set-output name=platform::${PLATFORM}
|
||||
if test -f "./containers/${CATEGORY}/${{ matrix.container }}/goss.yaml"; then
|
||||
echo ::set-output name=goss::true
|
||||
else
|
||||
echo ::set-output name=goss::false
|
||||
fi
|
||||
if [ "${{github.event_name}}" == "pull_request" ]; then
|
||||
echo ::set-output name=push::false
|
||||
echo ::set-output name=cache_from::"type=registry,ref=ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}:buildcache" || echo ::set-output name=cache_from::""
|
||||
echo ::set-output name=cache_to::""
|
||||
else
|
||||
echo ::set-output name=push::true
|
||||
echo ::set-output name=cache_from::"type=registry,ref=ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}:buildcache"
|
||||
echo ::set-output name=cache_to::"type=registry,ref=ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}:buildcache,mode=max"
|
||||
fi
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v1
|
||||
with:
|
||||
platforms: amd64
|
||||
|
||||
- name: Login to GHCR
|
||||
uses: docker/login-action@v1
|
||||
if: github.event_name != 'pull_request'
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.GHCR_USERNAME }}
|
||||
password: ${{ secrets.GHCR_TOKEN }}
|
||||
|
||||
# Install and configure Buildx
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
with:
|
||||
install: true
|
||||
version: latest
|
||||
driver-opts: image=moby/buildkit:master
|
||||
|
||||
# Install the GOSS testing framework
|
||||
- name: Set up goss/dgoss
|
||||
uses: e1himself/goss-installation-action@v1.0.3
|
||||
if: ${{ steps.prep.outputs.goss == 'true' }}
|
||||
with:
|
||||
version: 'v0.3.16'
|
||||
|
||||
# Creates a local build to run tests on
|
||||
- name: Build and Load local test-container
|
||||
if: ${{ steps.prep.outputs.goss == 'true' }}
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
build-args: VERSION=${{ steps.prep.outputs.version }}
|
||||
context: .
|
||||
file: ./containers/${{ steps.prep.outputs.category }}/${{ matrix.container }}/Dockerfile
|
||||
load: true
|
||||
tags: |
|
||||
ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}:test
|
||||
cache-from: ${{ steps.prep.outputs.cache_from }}
|
||||
cache-to: ${{ steps.prep.outputs.cache_to }}
|
||||
|
||||
# Run GOSS tests if included with the container
|
||||
- name: Run GOSS tests
|
||||
if: ${{ steps.prep.outputs.goss == 'true' }}
|
||||
env:
|
||||
GOSS_FILE: ./containers/${{ steps.prep.outputs.category }}/${{ matrix.container }}/goss.yaml
|
||||
run: |
|
||||
dgoss run ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}:test
|
||||
|
||||
# Push if not a PR, otherwise just test the build process for all requested platforms
|
||||
- name: Build and Push
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
build-args: VERSION=${{ steps.prep.outputs.version }}
|
||||
context: .
|
||||
platforms: ${{ steps.prep.outputs.platform }}
|
||||
file: ./containers/${{ steps.prep.outputs.category }}/${{ matrix.container }}/Dockerfile
|
||||
push: ${{ steps.prep.outputs.push }}
|
||||
tags: |
|
||||
ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}:latest
|
||||
ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}:v${{ steps.prep.outputs.version }}
|
||||
cache-from: ${{ steps.prep.outputs.cache_from }}
|
||||
cache-to: ${{ steps.prep.outputs.cache_to }}
|
||||
|
||||
container-build-complete:
|
||||
needs: [build]
|
||||
name: Container Build Completed
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: complete message
|
||||
run: echo "Container Build and Tests Completed Successfully"
|
||||
164
.github/workflows/housekeeping.yaml
vendored
164
.github/workflows/housekeeping.yaml
vendored
@@ -1,164 +0,0 @@
|
||||
name: "Housekeeping"
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- ".github/workflows/housekeeping.yaml"
|
||||
schedule:
|
||||
- cron: "0 3 * * *"
|
||||
|
||||
jobs:
|
||||
housekeeping:
|
||||
runs-on: ubuntu-latest
|
||||
name: "Housekeeping"
|
||||
steps:
|
||||
- name: Checkout branch
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.BOT_TOKEN }}
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v2
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install pybump
|
||||
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
||||
|
||||
- name: install helm-docs
|
||||
run: |
|
||||
brew install norwoodj/tap/helm-docs
|
||||
|
||||
- name: Containers - Fetch new application versions
|
||||
run: |
|
||||
find ./containers/apps -maxdepth 1 -mindepth 1 -type d -exec basename {} \; | while read app; do
|
||||
if test -f "./containers/apps/${app}/latest-version.sh"; then
|
||||
version=$(bash "./containers/apps/${app}/latest-version.sh")
|
||||
if [[ ! -z "${version}" || "${version}" != "null" ]]; then
|
||||
echo "${version}" | tee "./containers/apps/${app}/VERSION" > /dev/null
|
||||
echo "App: ${app} using version: ${version}"
|
||||
fi
|
||||
fi
|
||||
if test -f "./containers/apps/${app}/BASE"; then
|
||||
if test -f "./containers/apps/${app}/latest-base.sh"; then
|
||||
base=$(bash "./containers/apps/${app}/latest-base.sh")
|
||||
if [[ ! -z "${base}" || "${base}" != "null" ]]; then
|
||||
echo "${base}" | tee "containers/apps/${app}/BASE" > /dev/null
|
||||
echo "App: ${app} using Base: ${base}"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
- name: Containers - Fetch new base versions
|
||||
run: |
|
||||
find ./containers/base -maxdepth 1 -mindepth 1 -type d -exec basename {} \; | while read app; do
|
||||
if test -f "./containers/base/${app}/latest-version.sh"; then
|
||||
version=$(bash "./containers/base/${app}/latest-version.sh")
|
||||
if [[ ! -z "${version}" || "${version}" != "null" ]]; then
|
||||
echo "${version}" | tee "./containers/base/${app}/VERSION" > /dev/null
|
||||
echo "${app} ${version}"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
- name: update versions in docs
|
||||
run: |
|
||||
for train in stable incubator; do
|
||||
for chart in charts/${train}/*; do
|
||||
if [ -d "${chart}" ]; then
|
||||
maxchartversion=$(cat ${chart}/Chart.yaml | grep "^version: " | awk -F" " '{ print $2 }')
|
||||
chartname=$(basename ${chart})
|
||||
echo "Copying templates to ${chart}"
|
||||
helm-docs \
|
||||
--ignore-file=".helmdocsignore" \
|
||||
--output-file="README.md" \
|
||||
--template-files="/home/runner/work/apps/apps/templates/docs/README.md.gotmpl" \
|
||||
--chart-search-root="${chart}"
|
||||
helm-docs \
|
||||
--ignore-file=".helmdocsignore" \
|
||||
--output-file="CONFIG.md" \
|
||||
--template-files="/home/runner/work/apps/apps/templates/docs/CONFIG.md.gotmpl" \
|
||||
--chart-search-root="${chart}"
|
||||
helm-docs \
|
||||
--ignore-file=".helmdocsignore" \
|
||||
--output-file="app-readme.md" \
|
||||
--template-files="/home/runner/work/apps/apps/templates/docs/app-readme.md.gotmpl" \
|
||||
--chart-search-root="${chart}"
|
||||
helm-docs \
|
||||
--ignore-file=".helmdocsignore" \
|
||||
--output-file="helm-values.md" \
|
||||
--template-files="/home/runner/work/apps/apps/templates/docs/helm-values.md.gotmpl" \
|
||||
--chart-search-root="${chart}"
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
- name: generate common docs
|
||||
run: |
|
||||
mkdir -p docs/apps/common || echo "common path already exists, continuing..."
|
||||
echo "Copying common templates to docs"
|
||||
helm-docs \
|
||||
--ignore-file=".helmdocsignore" \
|
||||
--output-file="README.md" \
|
||||
--template-files="/home/runner/work/apps/apps/templates/docs/common-README.md.gotmpl" \
|
||||
--chart-search-root="/home/runner/work/apps/apps/charts/library/common"
|
||||
helm-docs \
|
||||
--ignore-file=".helmdocsignore" \
|
||||
--output-file="helm-values.md" \
|
||||
--template-files="/home/runner/work/apps/apps/templates/docs/common-helm-values.md.gotmpl" \
|
||||
--chart-search-root="/home/runner/work/apps/apps/charts/library/common"
|
||||
|
||||
- name: run pre-commit checks
|
||||
continue-on-error: true
|
||||
uses: pre-commit/action@v2.0.3
|
||||
|
||||
|
||||
|
||||
- name: Copy general readme to website
|
||||
run: |
|
||||
yes | cp -rf index.yaml docs/index.yaml || echo "chart-index copy failed, continuing..."
|
||||
yes | cp -rf .github/README.md docs/index.md || echo "readme copy failed, continuing..."
|
||||
sed -i '1s/^/---\nhide:\n - navigation\n - toc\n---\n/' docs/index.md
|
||||
sed -i 's~<!-- INSERT-DISCORD-WIDGET -->~<iframe src="https://discord.com/widget?id=830763548678291466\&theme=dark" width="350" height="500" allowtransparency="true" frameborder="0" sandbox="allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts"></iframe>~g' docs/index.md
|
||||
yes | cp -rf .github/CODE_OF_CONDUCT docs/about/code_of_conduct.md || echo "CODE_OF_CONDUCT copy failed, continuing..."
|
||||
yes | cp -rf .github/CONTRIBUTING docs/development/contributing.md || echo "CONTRIBUTING copy failed, continuing..."
|
||||
yes | cp -rf .github/SUPPORT.md docs/manual/SUPPORT.md || echo "support policy copy failed, continuing..."
|
||||
yes | cp -rf LICENSE docs/about/legal/LICENSE.md || echo "license copy failed, continuing..."
|
||||
sed -i '1s/^/# License<br>\n\n/' docs/about/legal/LICENSE.md
|
||||
yes | cp -rf NOTICE docs/about/legal/NOTICE.md || echo "license copy failed, continuing..."
|
||||
sed -i '1s/^/# NOTICE<br>\n\n/' docs/about/legal/NOTICE.md
|
||||
ls docs/
|
||||
|
||||
- name: Copy Apps readme to website
|
||||
run: |
|
||||
for train in stable incubator; do
|
||||
for chart in charts/${train}/*; do
|
||||
if [ -d "${chart}" ]; then
|
||||
chartname=$(basename ${chart})
|
||||
echo "Processing: ${chart}"
|
||||
mkdir -p docs/apps/${train}/${chartname} || echo "app path already exists, continuing..."
|
||||
yes | cp -rf ${chart}/README.md docs/apps/${train}/${chartname}/index.md || echo "readme copy failed, continuing..."
|
||||
yes | cp -rf ${chart}/CONFIG.md docs/apps/${train}/${chartname}/CONFIG.md || echo "config copy failed, continuing..."
|
||||
yes | cp -rf ${chart}/helm-values.md docs/apps/${train}/${chartname}/helm-values.md || echo "config copy failed, continuing..."
|
||||
sed -i '1s/^/# License<br>\n\n/' docs/apps/${train}/${chartname}/LICENSE.md || echo "license edit failed, continuing..."
|
||||
fi
|
||||
done
|
||||
echo "Processed charts for ${train}:"
|
||||
ls docs/apps/${train}/ || echo "no Apps in train"
|
||||
done
|
||||
mkdir -p docs/apps/common || echo "common docs path already exists, continuing..."
|
||||
yes | cp -rf charts/library/common/README.md docs/apps/common/index.md || echo "common readme copy failed, continuing..."
|
||||
yes | cp -rf charts/library/common/helm-values.md docs/apps/common/helm-values.md || echo "common readme copy failed, continuing..."
|
||||
|
||||
|
||||
- name: Commit and Push Housekeeping
|
||||
run: |
|
||||
git config user.name "TrueCharts-Bot"
|
||||
git config user.email "bot@truecharts.org"
|
||||
git add --all
|
||||
git commit -sm "Daily Housekeeping" || exit 0
|
||||
git push
|
||||
@@ -1 +0,0 @@
|
||||
focal-20210827
|
||||
@@ -1,17 +0,0 @@
|
||||
ARG TARGETPLATFORM
|
||||
ARG VERSION
|
||||
# hadolint ignore=DL3007
|
||||
FROM freeradius/freeradius-server:${VERSION}
|
||||
|
||||
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||
|
||||
# hadolint ignore=DL3008,DL3015,SC2086,SC2155
|
||||
RUN \
|
||||
rm /docker-entrypoint.sh && \
|
||||
rm -Rf /etc/raddb
|
||||
|
||||
VOLUME /etc/raddb
|
||||
COPY ./containers/apps/freeradius/entrypoint.sh /docker-entrypoint.sh
|
||||
|
||||
LABEL "maintainer"="TrueCharts <info@truecharts.org>"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/truecharts/apps"
|
||||
@@ -1 +0,0 @@
|
||||
3.0.23
|
||||
@@ -1,33 +0,0 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
if [ -f "/etc/raddb/clients.conf" ]; then
|
||||
echo "Radius config already exists, skipping config copy..."
|
||||
else
|
||||
echo "Radius config does not exist, copying..."
|
||||
cp -Rf /etc/freeradius/* /etc/raddb/
|
||||
fi
|
||||
|
||||
chown -R freerad:freerad /etc/raddb/
|
||||
|
||||
# this if will check if the first argument is a flag
|
||||
# but only works if all arguments require a hyphenated flag
|
||||
# -v; -SL; -f arg; etc will work, but not arg1 arg2
|
||||
if [ "$#" -eq 0 ] || [ "${1#-}" != "$1" ]; then
|
||||
set -- freeradius -d /etc/raddb "$@"
|
||||
fi
|
||||
|
||||
# check for the expected command
|
||||
if [ "$1" = 'freeradius' ]; then
|
||||
shift
|
||||
exec freeradius -f -d /etc/raddb "$@"
|
||||
fi
|
||||
|
||||
# many people are likely to call "radiusd" as well, so allow that
|
||||
if [ "$1" = 'radiusd' ]; then
|
||||
shift
|
||||
exec freeradius -f -d /etc/raddb "$@"
|
||||
fi
|
||||
|
||||
# else default to run whatever the user wanted like "bash" or "sh"
|
||||
exec "$@"
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
|
||||
port:
|
||||
udp:1812:
|
||||
listening: true
|
||||
@@ -1,2 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
cat "./containers/base/ubuntu/VERSION"
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
version=$(curl "https://registry.hub.docker.com/v1/repositories/freeradius/freeradius-server/tags" | jq --raw-output '.[].name' | grep -v layer | grep -v alpine | grep -v latest | tail -n1)
|
||||
version="${version#*v}"
|
||||
version="${version#*release-}"
|
||||
echo "${version}"
|
||||
@@ -1 +0,0 @@
|
||||
focal-20210827
|
||||
@@ -1,54 +0,0 @@
|
||||
# hadolint ignore=DL3007
|
||||
FROM ghcr.io/truecharts/ubuntu:latest
|
||||
|
||||
|
||||
ARG TARGETPLATFORM
|
||||
ARG VERSION
|
||||
|
||||
USER root
|
||||
|
||||
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||
|
||||
# hadolint ignore=DL3008,DL3015,SC2086,SC2155
|
||||
RUN \
|
||||
apt-get -qq update \
|
||||
&& \
|
||||
apt-get -qq install -y \
|
||||
libicu66 \
|
||||
jq \
|
||||
&& \
|
||||
case "${TARGETPLATFORM}" in \
|
||||
'linux/amd64') export ARCH='linux-x64' ;; \
|
||||
esac \
|
||||
&& \
|
||||
export URL=$(curl -sX GET https://api.github.com/repos/Ombi-app/Ombi/releases | \
|
||||
jq -r '.[] | select(.tag_name | contains(env.VERSION)) | .assets[] | select(.browser_download_url | contains(env.ARCH)) | .browser_download_url') \
|
||||
&& curl -fsSL -o /tmp/ombi.tgz "${URL}" \
|
||||
&& tar ixzf /tmp/ombi.tgz -C /app \
|
||||
&& \
|
||||
rm -rf \
|
||||
/tmp/ombi.tgz \
|
||||
&& printf "UpdateMethod=docker\nPackageVersion=%s\nPackageAuthor=[TrueCharts Project](https://truecharts.org)" "${VERSION}" > /app/package_info \
|
||||
&& apt-get remove -y \
|
||||
jq \
|
||||
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& apt-get autoremove -y \
|
||||
&& apt-get clean \
|
||||
&& \
|
||||
rm -rf \
|
||||
/tmp/* \
|
||||
/var/lib/apt/lists/* \
|
||||
/var/tmp/ \
|
||||
&& chmod -R u=rwX,go=rX /app \
|
||||
&& printf "umask %d" "${UMASK}" >> /etc/bash.bashrc \
|
||||
&& update-ca-certificates
|
||||
|
||||
USER apps
|
||||
|
||||
EXPOSE 3579
|
||||
|
||||
COPY ./containers/apps/ombi/entrypoint.sh /entrypoint.sh
|
||||
CMD ["/entrypoint.sh"]
|
||||
|
||||
LABEL "maintainer"="TrueCharts <info@truecharts.org>"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/truecharts/apps"
|
||||
@@ -1 +0,0 @@
|
||||
4.0.1482
|
||||
@@ -1,7 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
#shellcheck disable=SC1091
|
||||
source "/shim/umask.sh"
|
||||
source "/shim/vpn.sh"
|
||||
|
||||
exec /app/Ombi --host http://0.0.0.0:3579 --storage /config ${EXTRA_ARGS}
|
||||
@@ -1,2 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
cat "./containers/base/ubuntu/VERSION"
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
version=$(curl -sX GET "https://api.github.com/repos/Ombi-app/Ombi/releases" | jq --raw-output '.[0].tag_name')
|
||||
version="${version#*v}"
|
||||
version="${version#*release-}"
|
||||
printf "%s" "${version}"
|
||||
@@ -1 +0,0 @@
|
||||
focal-20210827
|
||||
@@ -1,107 +0,0 @@
|
||||
# hadolint ignore=DL3007
|
||||
FROM ghcr.io/truecharts/ubuntu:latest AS builder
|
||||
|
||||
# Change your name and email address
|
||||
ARG DEBFULLNAME=TrueCharts
|
||||
ARG DEBEMAIL=info@truecharts.org
|
||||
|
||||
ARG TARGETPLATFORM
|
||||
ARG VERSION
|
||||
|
||||
|
||||
# hadolint ignore=DL3002
|
||||
USER root
|
||||
|
||||
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||
|
||||
WORKDIR /buildtmp
|
||||
COPY ./containers/apps/sogo/build.sh /buildtmp/build.sh
|
||||
|
||||
# hadolint ignore=DL3008,DL3015,SC2086,SC2155,DL3047
|
||||
RUN \
|
||||
mkdir /build && \
|
||||
cd /buildtmp && \
|
||||
chmod 777 build.sh && \
|
||||
chmod +x build.sh && \
|
||||
./build.sh
|
||||
|
||||
|
||||
# hadolint ignore=DL3007
|
||||
FROM ghcr.io/truecharts/ubuntu:latest
|
||||
|
||||
ARG TARGETPLATFORM
|
||||
ARG VERSION
|
||||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
ARG SOGO_UBUNTU_REPOSITORY=https://packages.inverse.ca/SOGo/nightly/5/ubuntu/
|
||||
ENV LC_ALL C
|
||||
ENV GOSU_VERSION 1.12
|
||||
|
||||
# hadolint ignore=DL3002
|
||||
USER root
|
||||
|
||||
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||
|
||||
# hadolint ignore=DL3008,DL3015,SC2086,SC2155,DL3047
|
||||
RUN --mount=type=bind,from=builder,source=/buildtmp/vendor/output,target=/build \
|
||||
apt-get -qq update \
|
||||
&& \
|
||||
apt-get -qq install -y \
|
||||
libicu66 \
|
||||
jq \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
gettext \
|
||||
gnupg \
|
||||
mariadb-client \
|
||||
libmariadb3 \
|
||||
libcurl3-gnutls \
|
||||
rsync \
|
||||
supervisor \
|
||||
syslog-ng \
|
||||
syslog-ng-core \
|
||||
syslog-ng-mod-redis \
|
||||
dirmngr \
|
||||
netcat \
|
||||
psmisc \
|
||||
wget \
|
||||
patch \
|
||||
apache2 \
|
||||
gnupg2 \
|
||||
memcached \
|
||||
postgresql-client \
|
||||
&& \
|
||||
case "${TARGETPLATFORM}" in \
|
||||
'linux/amd64') export ARCH='linux-x64' ;; \
|
||||
esac \
|
||||
&& \
|
||||
mkdir ~/.gnupg && \
|
||||
echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf && \
|
||||
mkdir /usr/share/doc/sogo && \
|
||||
touch /usr/share/doc/sogo/empty.sh && \
|
||||
cd /build && \
|
||||
(echo "$(dpkg-deb -I _sogo_${VERSION}_amd64.deb | grep -E "Depends" | tr -d "|," | sed "s/([^)]*)/()/g" | tr -d "()" | tr " " "\n" | grep -Ev "Depends|Recommends|Suggests|Pre\-Depends|sogo|sope" | xargs)" | xargs -n 1 apt-get install -y || true) && \
|
||||
apt install -y ./*.deb && \
|
||||
apt-get install -f && \
|
||||
apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
|
||||
a2enmod headers proxy proxy_http rewrite ssl && \
|
||||
cp /etc/apache2/conf.d/SOGo.conf /etc/apache2/conf-available/ && \
|
||||
sed -i -e 's/#RedirectMatch \^\/\$ https:\/\/mail.yourdomain.com\/SOGo/RedirectMatch \^\/\$ \/SOGo/' /etc/apache2/conf-available/SOGo.conf && \
|
||||
sed -i -e 's|"x-webobjects-server-url" "https://|"x-webobjects-server-url" "http://|' /etc/apache2/conf-available/SOGo.conf && \
|
||||
sed -i -e 's|"x-webobjects-server-port" "443"|"x-webobjects-server-port" "80"|' /etc/apache2/conf-available/SOGo.conf && \
|
||||
a2enconf SOGo && \
|
||||
usermod --home /srv/lib/sogo sogo && \
|
||||
mkdir -p /var/run/memcached/ && \
|
||||
chown memcache:memcache /var/run/memcached
|
||||
|
||||
EXPOSE 80 443
|
||||
|
||||
COPY ./containers/apps/sogo/etc /etc
|
||||
COPY ./containers/apps/sogo/entrypoint.sh /entrypoint.sh
|
||||
|
||||
|
||||
CMD ["supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
|
||||
LABEL "maintainer"="TrueCharts <info@truecharts.org>"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/truecharts/apps"
|
||||
@@ -1 +0,0 @@
|
||||
5.2.0
|
||||
@@ -1,82 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
# https://stackoverflow.com/a/246128
|
||||
BASE_DIR="/buildtmp"
|
||||
|
||||
|
||||
REPOSITORY_SOGO="https://github.com/inverse-inc/sogo.git"
|
||||
REPOSITORY_SOPE="https://github.com/inverse-inc/sope.git"
|
||||
SOGO_GIT_TAG="SOGo-${VERSION}"
|
||||
SOPE_GIT_TAG="SOPE-${VERSION}"
|
||||
|
||||
PACKAGES_DIR="${BASE_DIR}/vendor"
|
||||
PACKAGES_TO_INSTALL="build-essential git zip wget make debhelper gnustep-make libssl-dev libgnustep-base-dev libldap2-dev libytnef0-dev zlib1g-dev libpq-dev libmariadbclient-dev-compat libmemcached-dev liblasso3-dev libcurl4-gnutls-dev devscripts libexpat1-dev libpopt-dev libsbjson-dev libsbjson2.3 libcurl4 liboath-dev libsodium-dev libzip-dev"
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
mkdir $PACKAGES_DIR
|
||||
cd "$PACKAGES_DIR"
|
||||
|
||||
# Do not install recommended or suggested packages
|
||||
echo 'APT::Get::Install-Recommends "false";' >> /etc/apt/apt.conf
|
||||
echo 'APT::Get::Install-Suggests "false";' >> /etc/apt/apt.conf
|
||||
|
||||
# Install required packages
|
||||
# shellcheck disable=SC2086
|
||||
apt-get update && apt-get install -y $PACKAGES_TO_INSTALL
|
||||
|
||||
# Download and install libwbxml2 and libwbxml2-dev
|
||||
wget -c https://packages.inverse.ca/SOGo/nightly/5/ubuntu/pool/focal/w/wbxml2/libwbxml2-dev_0.11.6-1_amd64.deb
|
||||
wget -c https://packages.inverse.ca/SOGo/nightly/5/ubuntu/pool/focal/w/wbxml2/libwbxml2-0_0.11.6-1_amd64.deb
|
||||
|
||||
dpkg -i libwbxml2-0_0.11.6-1_amd64.deb libwbxml2-dev_0.11.6-1_amd64.deb
|
||||
|
||||
# Install any missing packages
|
||||
apt-get -f install -y
|
||||
|
||||
# Install Python
|
||||
apt-get install -y python
|
||||
|
||||
# Checkout the SOPE repository with the given tag
|
||||
git clone --depth 1 --branch "${SOPE_GIT_TAG}" $REPOSITORY_SOPE
|
||||
cd sope
|
||||
|
||||
cp -a packaging/debian debian
|
||||
|
||||
./debian/rules
|
||||
|
||||
dpkg-checkbuilddeps && dpkg-buildpackage
|
||||
|
||||
cd "$PACKAGES_DIR"
|
||||
|
||||
# Install the built packages
|
||||
dpkg -i libsope*.deb
|
||||
|
||||
# Checkout the SOGo repository with the given tag
|
||||
git clone --depth 1 --branch "${SOGO_GIT_TAG}" $REPOSITORY_SOGO
|
||||
cd sogo
|
||||
|
||||
cp -a packaging/debian debian
|
||||
|
||||
dch --newversion "$VERSION" "Automated build for version $VERSION"
|
||||
|
||||
# cp packaging/debian-multiarch/control-no-openchange debian
|
||||
|
||||
./debian/rules
|
||||
|
||||
dpkg-checkbuilddeps && dpkg-buildpackage -b
|
||||
|
||||
ls "$PACKAGES_DIR"
|
||||
cd $PACKAGES_DIR
|
||||
rm *dev*
|
||||
rm -Rf sogo || echo "sogo folder not found in output, no problem..."
|
||||
mv sogo_${VERSION}_amd64.deb _sogo_${VERSION}_amd64.deb
|
||||
mkdir output
|
||||
mv *deb output/
|
||||
|
||||
# Install the built packages
|
||||
# dpkg -i sope4.9-gdl1-mysql_4.9.r1664_amd64.deb
|
||||
# dpkg -i sope4.9-libxmlsaxdriver_4.9.r1664_amd64.deb
|
||||
# dpkg -i "sogo_${VERSION}_amd64.deb"
|
||||
@@ -1,22 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
#shellcheck disable=SC1091
|
||||
source "/shim/umask.sh"
|
||||
source "/shim/vpn.sh"
|
||||
|
||||
|
||||
if [[ "${SKIP_SOGO}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
|
||||
echo "SKIP_SOGO=y, skipping SOGo..."
|
||||
sleep 365d
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Run hooks
|
||||
for file in /hooks/*; do
|
||||
if [ -x "${file}" ]; then
|
||||
echo "Running hook ${file}"
|
||||
"${file}"
|
||||
fi
|
||||
done
|
||||
|
||||
exec "$@"
|
||||
@@ -1,42 +0,0 @@
|
||||
# each program entry below is a separate terminal command.
|
||||
# Each command MUST run in the foreground and stay running.
|
||||
# If the command ever exits, the supervisor daemon will automatically run it again.
|
||||
# Programs can be controlled like this: 'supervisorctl start fail2ban' 'supervisorctl stop fail2ban'
|
||||
# supervisor writes program statuses in /var/log/supervisor
|
||||
|
||||
[supervisord]
|
||||
nodaemon=true
|
||||
|
||||
[program:apache2]
|
||||
startsecs=0
|
||||
autostart=true
|
||||
autorestart=false
|
||||
stdout_logfile=/dev/stdout
|
||||
stdout_logfile_maxbytes=0
|
||||
stderr_logfile=/dev/stderr
|
||||
stderr_logfile_maxbytes=0
|
||||
environment=APACHE_ARGUMENTS="-DNO_DETACH"
|
||||
command=/usr/sbin/apache2ctl start
|
||||
|
||||
[program:memcached]
|
||||
startsecs=0
|
||||
autostart=true
|
||||
autorestart=true
|
||||
user=memcache
|
||||
stdout_logfile=/dev/stdout
|
||||
stdout_logfile_maxbytes=0
|
||||
stderr_logfile=/dev/stderr
|
||||
stderr_logfile_maxbytes=0
|
||||
command=/usr/bin/memcached -m 128 -a 0666 -s /var/run/memcached/memcached.sock
|
||||
|
||||
|
||||
[program:sogo]
|
||||
startsecs=0
|
||||
autostart=true
|
||||
autorestart=true
|
||||
stdout_logfile=/dev/stdout
|
||||
stdout_logfile_maxbytes=0
|
||||
stderr_logfile=/dev/stderr
|
||||
stderr_logfile_maxbytes=0
|
||||
user=sogo
|
||||
command=/usr/sbin/sogod -WONoDetach YES -WOPidFile /var/run/sogo/sogo.pid
|
||||
@@ -1,28 +0,0 @@
|
||||
; supervisor config file
|
||||
|
||||
[unix_http_server]
|
||||
file=/dev/shm/supervisor.sock ; (the path to the socket file)
|
||||
chmod=0700 ; sockef file mode (default 0700)
|
||||
|
||||
[supervisord]
|
||||
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
|
||||
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
|
||||
childlogdir=/var/log/supervisor ; ('AUTO' child log dir, default $TEMP)
|
||||
|
||||
; the below section must remain in the config file for RPC
|
||||
; (supervisorctl/web interface) to work, additional interfaces may be
|
||||
; added by defining them in separate rpcinterface: sections
|
||||
[rpcinterface:supervisor]
|
||||
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
|
||||
|
||||
[supervisorctl]
|
||||
serverurl=unix:///dev/shm/supervisor.sock ; use a unix:// URL for a unix socket
|
||||
|
||||
; The [include] section can just contain the "files" setting. This
|
||||
; setting can list multiple files (separated by whitespace or
|
||||
; newlines). It can also contain wildcards. The filenames are
|
||||
; interpreted as relative to this file. Included files *cannot*
|
||||
; include files themselves.
|
||||
|
||||
[include]
|
||||
files = /etc/supervisor/conf.d/*.conf
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
|
||||
port:
|
||||
tcp:80:
|
||||
listening: true
|
||||
@@ -1,2 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
cat "./containers/base/ubuntu/VERSION"
|
||||
@@ -1,7 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
version=$(curl -sX GET "https://api.github.com/repos/inverse-inc/sogo/releases" | jq --raw-output '.[0].tag_name')
|
||||
version="${version#*SOGo-}"
|
||||
version="${version#*release-}"
|
||||
version="${version#*v}"
|
||||
printf "%s" "${version}"
|
||||
@@ -1 +0,0 @@
|
||||
focal-20210827
|
||||
@@ -1,44 +0,0 @@
|
||||
# hadolint ignore=DL3007
|
||||
FROM quay.io/helmpack/chart-releaser:v1.2.1 AS cr
|
||||
|
||||
# hadolint ignore=DL3007
|
||||
FROM jnorwood/helm-docs:v1.5.0 AS hd
|
||||
|
||||
# hadolint ignore=DL3007
|
||||
FROM quay.io/git-chglog/git-chglog:0.15.0 AS gcl
|
||||
|
||||
# hadolint ignore=DL3007
|
||||
FROM ixsystems/catalog_validation:latest
|
||||
|
||||
ARG TARGETPLATFORM
|
||||
ARG VERSION
|
||||
|
||||
USER root
|
||||
|
||||
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||
|
||||
# hadolint ignore=DL3008,DL3015,SC2086,SC2155
|
||||
RUN --mount=type=bind,from=cr,source=/usr/local/bin,target=/crbin \
|
||||
cp /crbin/cr /usr/local/bin/cr
|
||||
|
||||
# hadolint ignore=DL3008,DL3015,SC2086,SC2155
|
||||
RUN --mount=type=bind,from=hd,source=/usr/bin/,target=/hdbin \
|
||||
cp /hdbin/helm-docs /usr/local/bin/helm-docs
|
||||
|
||||
# hadolint ignore=DL3008,DL3015,SC2086,SC2155
|
||||
RUN --mount=type=bind,from=gcl,source=/usr/local/bin,target=/gclbin \
|
||||
cp /gclbin/git-chglog /usr/local/bin/git-chglog
|
||||
|
||||
COPY ./.pre-commit-config.yaml /app/.pre-commit-config.yaml
|
||||
|
||||
# hadolint ignore=DL3008,DL3015,SC2086,SC2155,DL3013
|
||||
RUN pip install --no-cache-dir pre-commit && \
|
||||
git init . && \
|
||||
pre-commit install-hooks && \
|
||||
rm -Rf /App/* && \
|
||||
echo "installed pre-commit hooks:" && \
|
||||
ls ~/.cache/pre-commit/*
|
||||
|
||||
|
||||
LABEL "maintainer"="TrueCharts <info@truecharts.org>"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/truecharts/apps"
|
||||
@@ -1 +0,0 @@
|
||||
1.3.0
|
||||
@@ -1,2 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
cat "./containers/base/ubuntu/VERSION"
|
||||
@@ -1,6 +0,0 @@
|
||||
ARG VERSION
|
||||
|
||||
FROM ghcr.io/k8s-at-home/alpine:v${VERSION}
|
||||
|
||||
ENTRYPOINT ["/sbin/tini", "--"]
|
||||
CMD ["echo", "'No can haz support yet. Chek bak l8r!'", "exit", "1337" ]
|
||||
@@ -1 +0,0 @@
|
||||
linux/amd64
|
||||
@@ -1 +0,0 @@
|
||||
3.14.2
|
||||
@@ -1,7 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
TOKEN=$(curl https://ghcr.io/token\?scope\="repository:k8s-at-home/alpine:pull" | jq --raw-output '.[]')
|
||||
version=$(curl -H "Authorization: Bearer ${TOKEN}" https://ghcr.io/v2/k8s-at-home/alpine/tags/list | jq --raw-output '.tags[]' | grep -v latest | grep -v buildcache | tail -n1)
|
||||
version="${version#*v}"
|
||||
version="${version#*release-}"
|
||||
echo "${version}"
|
||||
@@ -1,26 +0,0 @@
|
||||
ARG VERSION
|
||||
|
||||
FROM ghcr.io/k8s-at-home/ubuntu:v${VERSION}
|
||||
|
||||
ARG TARGETPLATFORM
|
||||
|
||||
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||
|
||||
USER root
|
||||
|
||||
RUN \
|
||||
usermod -l apps kah \
|
||||
&& \
|
||||
groupmod -n apps kah \
|
||||
&& chown -R apps:apps /config
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
USER apps
|
||||
|
||||
VOLUME [ "/config" ]
|
||||
|
||||
ENTRYPOINT [ "/usr/bin/tini", "--" ]
|
||||
|
||||
LABEL "maintainer"="TrueCharts <info@truecharts.org>"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/truecharts/apps"
|
||||
@@ -1 +0,0 @@
|
||||
linux/amd64
|
||||
@@ -1 +0,0 @@
|
||||
focal-20210827
|
||||
@@ -1,7 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
TOKEN=$(curl https://ghcr.io/token\?scope\="repository:k8s-at-home/ubuntu:pull" | jq --raw-output '.[]')
|
||||
version=$(curl -H "Authorization: Bearer ${TOKEN}" https://ghcr.io/v2/k8s-at-home/ubuntu/tags/list | jq --raw-output '.tags[]' | grep -v latest | grep -v buildcache | tail -n1)
|
||||
version="${version#*v}"
|
||||
version="${version#*release-}"
|
||||
echo "${version}"
|
||||
@@ -1 +0,0 @@
|
||||
1.16
|
||||
@@ -1,36 +0,0 @@
|
||||
ARG VERSION="1.16"
|
||||
FROM mcr.microsoft.com/vscode/devcontainers/go:0-${VERSION}
|
||||
|
||||
ARG HELM_VERSION="3.5.4"
|
||||
ARG CT_VERSION=3.3.1
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN \
|
||||
apt-get update \
|
||||
&& \
|
||||
apt-get -y install --no-install-recommends \
|
||||
libonig-dev \
|
||||
gnupg2 \
|
||||
python3-pip \
|
||||
python3-setuptools \
|
||||
&& \
|
||||
sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b /usr/local/bin \
|
||||
&& \
|
||||
curl -o /tmp/helm.tar.gz "https://get.helm.sh/helm-v${HELM_VERSION}-linux-$(dpkg --print-architecture).tar.gz" \
|
||||
&& tar xvzf /tmp/helm.tar.gz -C /usr/local/bin --strip-components 1 "linux-$(dpkg --print-architecture)/helm" \
|
||||
&& chmod +x /usr/local/bin/helm \
|
||||
&& \
|
||||
curl -o /tmp/ct.tar.gz -L "https://github.com/helm/chart-testing/releases/download/v${CT_VERSION}/chart-testing_${CT_VERSION}_linux_$(dpkg --print-architecture).tar.gz" \
|
||||
&& mkdir -p /etc/ct \
|
||||
&& tar xvzf /tmp/ct.tar.gz -C /usr/local/bin "ct" \
|
||||
&& tar xvzf /tmp/ct.tar.gz --strip-components=1 -C /etc/ct "etc/" \
|
||||
&& chmod +x /usr/local/bin/ct \
|
||||
&& \
|
||||
pip3 install \
|
||||
pre-commit \
|
||||
yamale \
|
||||
yamllint \
|
||||
&& \
|
||||
rm \
|
||||
/tmp/helm.tar.gz \
|
||||
/tmp/ct.tar.gz
|
||||
@@ -1 +0,0 @@
|
||||
1.16
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
printf "%s" "1.16"
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
printf "%s" "1.16"
|
||||
Reference in New Issue
Block a user