2
0
Fork 0
mirror of https://github.com/friendica/docker synced 2024-11-11 14:51:32 +01:00
docker/README-MAINTENANCE.md
2018-05-28 21:22:41 +02:00

3.5 KiB

How to maintain this repository

The structure and usage of this repository is influenced by other, official docker repositories.

Version directories

This is important. Never ever change a file/folder inside a directory without a . at the beginning (2018.05-rc, ...). This folder will get updated automatically based on the templates you want to change. All changes in such folders will get overwritten during an update.

Basic files and folders

Most of the time you want to change one of the followed files.

.bin

This directory holds the binary/shell files for docker images. They get copied into the docker images at /usr/local/bin.

.config

This directory holds the config files for docker images. They get copied into the docker images at /usr/src/config.

htconfig.php

This file is based on the sample htconfig.php in the Friendica repository.

The differences:

  • Removed the die() at the beginning
  • Removed all hard-coded DB settings
  • Added environment variables for mailname, tz, language

Templates & shell-scripts

  • If you want to update/upgrade Dockerfiles, use the right *.template file for it.
  • If you want to update/change the behavior of every start of Docker-image, change docker-entrypoint.sh
  • If you want to update/change the behavior how cronjobs will get started, change docker-cron.sh

Maintenance scripts

There are two important scripts in this repository for maintenance.

update.sh

Creates a directory and the necessary files for each combination of version (2018.05-rc, 3.6, ...) and variant (apache, fpm, fpm-alpine):

  • Creating the right Dockerfile (from one of the two *.template files)
  • Creating the docker-*.sh files (copy as *.sh)
  • Coping /.bin/* to bin/*
  • Coping /.config/* to config/*
  • Recreating the version/variant environment in .travis.yml

If you want to update the Docker-images to a newer version, just change the list in update.sh at

versions=(
  2018.05-rc
)

generate-stackbrew-library.sh

This file automatically creates a "manifest" for the docker-images. Like:

# This file is generated via https://github.com/friendica/docker/blob/b46fae917321394e1482df59dc4e39daffbe5c59/generate-stackbrew-library.sh
Maintainers: Friendica <info@friendi.ca> (@friendica), Philipp Holzer <admin@philipp.info> (@[secure])
GitRepo: https://github.com/friendica/docker.git

Tags: 2018.05-rc-apache, rc-apache, apache, stable-apache, production-apache, 2018.05-rc, rc, latest, stable, production
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, s390x
GitCommit: b46fae917321394e1482df59dc4e39daffbe5c59
Directory: 2018.05-rc/apache

Tags: 2018.05-rc-fpm, rc-fpm, fpm, stable-fpm, production-fpm
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, s390x
GitCommit: b46fae917321394e1482df59dc4e39daffbe5c59
Directory: 2018.05-rc/fpm

Tags: 2018.05-rc-fpm-alpine, rc-fpm-alpine, fpm-alpine, stable-fpm-alpine, production-fpm-alpine
Architectures: amd64, arm32v6, arm64v8, i386, ppc64le, s390x
GitCommit: b46fae917321394e1482df59dc4e39daffbe5c59
Directory: 2018.05-rc/fpm-alpine
This is the input-file for the official-images in a later step :-)