update zammad & components (#307)
Signed-off-by: André Bauer <andre.bauer@staffbase.com> Signed-off-by: André Bauer <andre.bauer@staffbase.com>
This commit is contained in:
parent
0af24d791f
commit
c5c1db541a
2
.env
2
.env
@ -5,4 +5,4 @@ POSTGRES_USER=zammad
|
|||||||
REDIS_URL=redis://zammad-redis:6379
|
REDIS_URL=redis://zammad-redis:6379
|
||||||
RESTART=always
|
RESTART=always
|
||||||
# don't forget to add the minus before the version
|
# don't forget to add the minus before the version
|
||||||
VERSION=-5.2.3-18
|
VERSION=-5.2.3-32
|
||||||
|
14
.github/dependabot.yml
vendored
14
.github/dependabot.yml
vendored
@ -8,20 +8,6 @@ updates:
|
|||||||
time: "09:00"
|
time: "09:00"
|
||||||
timezone: "Europe/Berlin"
|
timezone: "Europe/Berlin"
|
||||||
|
|
||||||
- package-ecosystem: "docker"
|
|
||||||
directory: "/containers/zammad-elasticsearch"
|
|
||||||
schedule:
|
|
||||||
interval: "weekly"
|
|
||||||
time: "09:00"
|
|
||||||
timezone: "Europe/Berlin"
|
|
||||||
|
|
||||||
- package-ecosystem: "docker"
|
|
||||||
directory: "/containers/zammad-postgresql"
|
|
||||||
schedule:
|
|
||||||
interval: "weekly"
|
|
||||||
time: "09:00"
|
|
||||||
timezone: "Europe/Berlin"
|
|
||||||
|
|
||||||
- package-ecosystem: "github-actions"
|
- package-ecosystem: "github-actions"
|
||||||
directory: "/"
|
directory: "/"
|
||||||
schedule:
|
schedule:
|
||||||
|
9
.github/docker-image-build.sh
vendored
9
.github/docker-image-build.sh
vendored
@ -5,10 +5,7 @@
|
|||||||
set -o errexit
|
set -o errexit
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
||||||
DOCKER_IMAGES="zammad zammad-elasticsearch zammad-postgresql"
|
DOCKER_IMAGE="zammad"
|
||||||
|
|
||||||
# shellcheck disable=SC2153
|
echo "Build Zammad Docker image ${DOCKER_IMAGE} for local or ci tests"
|
||||||
for DOCKER_IMAGE in ${DOCKER_IMAGES}; do
|
docker build --pull --no-cache --build-arg BUILD_DATE="$(date -u +'%Y-%m-%dT%H:%M:%SZ')" -t "${DOCKER_IMAGE}-local" -f "containers/${DOCKER_IMAGE}/Dockerfile" .
|
||||||
echo "Build Zammad Docker image ${DOCKER_IMAGE} for local or ci tests"
|
|
||||||
docker build --pull --no-cache --build-arg BUILD_DATE="$(date -u +'%Y-%m-%dT%H:%M:%SZ')" -t "${DOCKER_IMAGE}-local" -f "containers/${DOCKER_IMAGE}/Dockerfile" .
|
|
||||||
done
|
|
||||||
|
2
.github/workflows/ci-remote-image.yaml
vendored
2
.github/workflows/ci-remote-image.yaml
vendored
@ -9,7 +9,7 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
run-remote-image-docker-compose:
|
run-remote-image-docker-compose:
|
||||||
timeout-minutes: 20
|
timeout-minutes: 20
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
6
.github/workflows/ci.yaml
vendored
6
.github/workflows/ci.yaml
vendored
@ -6,7 +6,7 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
lint-docker-compose-file:
|
lint-docker-compose-file:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
@ -15,7 +15,7 @@ jobs:
|
|||||||
run: docker-compose config
|
run: docker-compose config
|
||||||
|
|
||||||
super-linter:
|
super-linter:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Code
|
- name: Checkout Code
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
@ -36,7 +36,7 @@ jobs:
|
|||||||
- lint-docker-compose-file
|
- lint-docker-compose-file
|
||||||
- super-linter
|
- super-linter
|
||||||
timeout-minutes: 20
|
timeout-minutes: 20
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
64
README.md
64
README.md
@ -46,6 +46,59 @@ Elasticsearch is enabled by default in the example `docker-compose.yml` file. It
|
|||||||
|
|
||||||
## Upgrading
|
## Upgrading
|
||||||
|
|
||||||
|
### From =< to 5.0.0 to 5.2.3-32
|
||||||
|
|
||||||
|
* Elasticsearch was updated from 7.17.3 to 8.5.0 using the Bitnami image
|
||||||
|
* We don't use a custom build of the docker image anymore as ingest-attachment is no longer a plugin but instead a module packaged with this distribution of Elasticsearch
|
||||||
|
* ELASTICSEARCH_REINDEX var should be set to true
|
||||||
|
|
||||||
|
* PostgreSql was updated from 9.6.24 to 15.0.0
|
||||||
|
* We don't use a custom build of the docker image anymore as we just mount the backup script to the postgres container now
|
||||||
|
* backup / restore ins needed to update
|
||||||
|
* you can create a new backup (with your old postgres 9.6 version / still in previous git version) by:
|
||||||
|
* if you already have checked out the newest commit
|
||||||
|
* `git checkout cd424e98689b8dc49878a37b9aab67192c36fd24`
|
||||||
|
* docker-compose stop
|
||||||
|
* docker-compose up
|
||||||
|
* check docker logs until "backup finished :)" is shown as last(!) entry
|
||||||
|
* `docker logs -f zammad-docker-compose_zammad-backup_1`
|
||||||
|
* `docker-compose stop`
|
||||||
|
* you can restore the backup in postgres 15 like
|
||||||
|
* update git epository
|
||||||
|
* `git checkout master`
|
||||||
|
* `git pull`
|
||||||
|
* stop docker-compose if it's running
|
||||||
|
* `docker-compose stop`
|
||||||
|
* delete old zammad postgre container and volume (data is lost! get sure your backups are in place!)
|
||||||
|
* `docker container rm zammad-docker-compose_zammad-postgresql_1`
|
||||||
|
* `docker volume rm zammad-docker-compose_postgresql-data`
|
||||||
|
* recreate zammads postgres volume
|
||||||
|
* `docker volume create zammad-docker-compose_postgresql-data`
|
||||||
|
* start a temporary restore container (adjust username & password vars if needed)
|
||||||
|
* `docker run -it --rm --name postgres-restore -v zammad-docker-compose_zammad-backup:/var/tmp/zammad:ro -v zammad-docker-compose_postgresql-data:/var/lib/postgresql/data -e POSTGRES_USER=zammad -e POSTGRES_PASSWORD=zammad postgres:15.0-alpine`
|
||||||
|
* in a second bash shell run:
|
||||||
|
* show available backups
|
||||||
|
* `docker exec -it postgres-restore bash -c "ls -al /var/tmp/zammad/"`
|
||||||
|
* create zammad_production db
|
||||||
|
* `docker exec -it postgres-restore bash -c "psql -U zammad --command='CREATE DATABASE zammad_production'"`
|
||||||
|
* restore old data with adjusted filename you got from the ls command above
|
||||||
|
* `docker exec -it postgres-restore bash -c "gunzip -kc /var/tmp/zammad/!!!ENTER_PSQL_FILE_NAME_FROM_COMMAND_ABOVE!!!_zammad_db.psql.gz | psql -U zammad" -d zammad_production`
|
||||||
|
* stop the restore container
|
||||||
|
* `docker stop postgres-restore`
|
||||||
|
* in your first bash shell
|
||||||
|
* `docker-compose up`
|
||||||
|
|
||||||
|
### From =< 4.0.0 to 5.0.0
|
||||||
|
|
||||||
|
Memchached config changed. If you use the old env vars `MEMCACHED_HOST` & `MEMCACHED_PORT` adapt to `MEMCACHE_SERVERS`.
|
||||||
|
Redis is a dependency for the Websocket server now.
|
||||||
|
|
||||||
|
### From =< 3.6.0-65
|
||||||
|
|
||||||
|
To be able to run Zammad container with an unprivileged user we had to change the port Nginx uses from 80 to 8080, so Zammad needs to be accessed via <http://localhost:8080> instead of <http://localhost> now!
|
||||||
|
|
||||||
|
This change will also affect you, if you use a reverse proxy, like Traefik or Haproxy, in front of Zammad as your reverse proxy configuration needs to be adapted to point to port 8080 now.
|
||||||
|
|
||||||
### From =< 3.3.0-12
|
### From =< 3.3.0-12
|
||||||
|
|
||||||
We've updated the Elasticsearch image from 5.6 to 7.6.
|
We've updated the Elasticsearch image from 5.6 to 7.6.
|
||||||
@ -69,14 +122,3 @@ CREATE USER zammad;
|
|||||||
ALTER USER zammad WITH PASSWORD 'zammad';
|
ALTER USER zammad WITH PASSWORD 'zammad';
|
||||||
ALTER USER zammad WITH SUPERUSER CREATEDB;
|
ALTER USER zammad WITH SUPERUSER CREATEDB;
|
||||||
```
|
```
|
||||||
|
|
||||||
### From =< 3.6.0-65
|
|
||||||
|
|
||||||
To be able to run Zammad container with an unprivileged user we had to change the port Nginx uses from 80 to 8080, so Zammad needs to be accessed via <http://localhost:8080> instead of <http://localhost> now!
|
|
||||||
|
|
||||||
This change will also affect you, if you use a reverse proxy, like Traefik or Haproxy, in front of Zammad as your reverse proxy configuration needs to be adapted to point to port 8080 now.
|
|
||||||
|
|
||||||
### From =< 4.0.0 to 5.0.0
|
|
||||||
|
|
||||||
Memchached config changed. If you use the old env vars `MEMCACHED_HOST` & `MEMCACHED_PORT` adapt to `MEMCACHE_SERVERS`.
|
|
||||||
Redis is a dependency for the Websocket server now.
|
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
FROM docker.elastic.co/elasticsearch/elasticsearch:7.17.3
|
|
||||||
ARG BUILD_DATE
|
|
||||||
|
|
||||||
LABEL org.label-schema.build-date="$BUILD_DATE" \
|
|
||||||
org.label-schema.name="Zammad" \
|
|
||||||
org.label-schema.license="AGPL-3.0" \
|
|
||||||
org.label-schema.description="Docker container for Zammad - Elasticsearch" \
|
|
||||||
org.label-schema.url="https://zammad.org" \
|
|
||||||
org.label-schema.vcs-url="https://github.com/zammad/zammad" \
|
|
||||||
org.label-schema.vcs-type="Git" \
|
|
||||||
org.label-schema.vendor="Zammad" \
|
|
||||||
org.label-schema.schema-version="5.2.1" \
|
|
||||||
org.label-schema.docker.cmd="sysctl -w vm.max_map_count=262144;docker-compose up"
|
|
||||||
|
|
||||||
SHELL ["/bin/bash", "-e", "-o", "pipefail", "-c"]
|
|
||||||
|
|
||||||
RUN /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch ingest-attachment
|
|
@ -1,20 +0,0 @@
|
|||||||
FROM postgres:15.0-alpine
|
|
||||||
|
|
||||||
ARG BUILD_DATE
|
|
||||||
|
|
||||||
LABEL org.label-schema.build-date="$BUILD_DATE" \
|
|
||||||
org.label-schema.name="Zammad" \
|
|
||||||
org.label-schema.license="AGPL-3.0" \
|
|
||||||
org.label-schema.description="Docker container for Zammad - Postgresql" \
|
|
||||||
org.label-schema.url="https://zammad.org" \
|
|
||||||
org.label-schema.vcs-url="https://github.com/zammad/zammad" \
|
|
||||||
org.label-schema.vcs-type="Git" \
|
|
||||||
org.label-schema.vendor="Zammad" \
|
|
||||||
org.label-schema.schema-version="5.2.1" \
|
|
||||||
org.label-schema.docker.cmd="sysctl -w vm.max_map_count=262144;docker-compose up"
|
|
||||||
|
|
||||||
SHELL ["/bin/bash", "-e", "-o", "pipefail", "-c"]
|
|
||||||
|
|
||||||
# copy backup script
|
|
||||||
COPY containers/zammad-postgresql/backup.sh /usr/local/bin/
|
|
||||||
RUN chmod +x /usr/local/bin/backup.sh
|
|
@ -37,7 +37,7 @@ LABEL org.label-schema.build-date="$BUILD_DATE" \
|
|||||||
org.label-schema.vcs-url="https://github.com/zammad/zammad" \
|
org.label-schema.vcs-url="https://github.com/zammad/zammad" \
|
||||||
org.label-schema.vcs-type="Git" \
|
org.label-schema.vcs-type="Git" \
|
||||||
org.label-schema.vendor="Zammad" \
|
org.label-schema.vendor="Zammad" \
|
||||||
org.label-schema.schema-version="5.2.1" \
|
org.label-schema.schema-version="5.2.3" \
|
||||||
org.label-schema.docker.cmd="sysctl -w vm.max_map_count=262144;docker-compose up"
|
org.label-schema.docker.cmd="sysctl -w vm.max_map_count=262144;docker-compose up"
|
||||||
|
|
||||||
ENV GIT_BRANCH stable
|
ENV GIT_BRANCH stable
|
||||||
|
@ -3,21 +3,12 @@ version: '3'
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
zammad-backup:
|
|
||||||
image: zammad-postgresql-local
|
|
||||||
|
|
||||||
zammad-elasticsearch:
|
|
||||||
image: zammad-elasticsearch-local
|
|
||||||
|
|
||||||
zammad-init:
|
zammad-init:
|
||||||
image: zammad-local
|
image: zammad-local
|
||||||
|
|
||||||
zammad-nginx:
|
zammad-nginx:
|
||||||
image: zammad-local
|
image: zammad-local
|
||||||
|
|
||||||
zammad-postgresql:
|
|
||||||
image: zammad-postgresql-local
|
|
||||||
|
|
||||||
zammad-railsserver:
|
zammad-railsserver:
|
||||||
image: zammad-local
|
image: zammad-local
|
||||||
|
|
||||||
|
@ -14,19 +14,18 @@ services:
|
|||||||
- HOLD_DAYS=10
|
- HOLD_DAYS=10
|
||||||
- POSTGRESQL_USER=${POSTGRES_USER}
|
- POSTGRESQL_USER=${POSTGRES_USER}
|
||||||
- POSTGRESQL_PASSWORD=${POSTGRES_PASS}
|
- POSTGRESQL_PASSWORD=${POSTGRES_PASS}
|
||||||
image: ${IMAGE_REPO}:zammad-postgresql${VERSION}
|
image: postgres:15.0-alpine
|
||||||
restart: ${RESTART}
|
restart: ${RESTART}
|
||||||
volumes:
|
volumes:
|
||||||
- zammad-backup:/var/tmp/zammad
|
- zammad-backup:/var/tmp/zammad
|
||||||
- zammad-data:/opt/zammad
|
- zammad-data:/opt/zammad:ro
|
||||||
|
- ./scripts/backup.sh:/usr/local/bin/backup.sh:ro
|
||||||
|
|
||||||
zammad-elasticsearch:
|
zammad-elasticsearch:
|
||||||
environment:
|
image: bitnami/elasticsearch:8.5.0
|
||||||
- discovery.type=single-node
|
|
||||||
image: ${IMAGE_REPO}:zammad-elasticsearch${VERSION}
|
|
||||||
restart: ${RESTART}
|
restart: ${RESTART}
|
||||||
volumes:
|
volumes:
|
||||||
- elasticsearch-data:/usr/share/elasticsearch/data
|
- elasticsearch-data:/bitnami/elasticsearch/data
|
||||||
|
|
||||||
zammad-init:
|
zammad-init:
|
||||||
command: ["zammad-init"]
|
command: ["zammad-init"]
|
||||||
@ -44,7 +43,7 @@ services:
|
|||||||
|
|
||||||
zammad-memcached:
|
zammad-memcached:
|
||||||
command: memcached -m 256M
|
command: memcached -m 256M
|
||||||
image: memcached:1.6.10-alpine
|
image: memcached:1.6.17-alpine
|
||||||
restart: ${RESTART}
|
restart: ${RESTART}
|
||||||
|
|
||||||
zammad-nginx:
|
zammad-nginx:
|
||||||
@ -62,7 +61,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- POSTGRES_USER=${POSTGRES_USER}
|
- POSTGRES_USER=${POSTGRES_USER}
|
||||||
- POSTGRES_PASSWORD=${POSTGRES_PASS}
|
- POSTGRES_PASSWORD=${POSTGRES_PASS}
|
||||||
image: ${IMAGE_REPO}:zammad-postgresql${VERSION}
|
image: postgres:15.0-alpine
|
||||||
restart: ${RESTART}
|
restart: ${RESTART}
|
||||||
volumes:
|
volumes:
|
||||||
- postgresql-data:/var/lib/postgresql/data
|
- postgresql-data:/var/lib/postgresql/data
|
||||||
|
@ -34,6 +34,8 @@ function zammad_backup {
|
|||||||
|
|
||||||
#db backup
|
#db backup
|
||||||
pg_dump --dbname=postgresql://"${POSTGRESQL_USER}:${POSTGRESQL_PASSWORD}@${POSTGRESQL_HOST}:${POSTGRESQL_PORT}/${POSTGRESQL_DB}" | gzip > "${BACKUP_DIR}"/"${TIMESTAMP}"_zammad_db.psql.gz
|
pg_dump --dbname=postgresql://"${POSTGRESQL_USER}:${POSTGRESQL_PASSWORD}@${POSTGRESQL_HOST}:${POSTGRESQL_PORT}/${POSTGRESQL_DB}" | gzip > "${BACKUP_DIR}"/"${TIMESTAMP}"_zammad_db.psql.gz
|
||||||
|
|
||||||
|
echo "backup finished :)"
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ "$1" = 'zammad-backup' ]; then
|
if [ "$1" = 'zammad-backup' ]; then
|
Loading…
Reference in New Issue
Block a user