From 878e544e87c4450d238e24a38ce9ebcce2431bef Mon Sep 17 00:00:00 2001 From: andreas Date: Sun, 2 Apr 2023 11:16:26 +0000 Subject: [PATCH] started mysql/server --- .env | 3 + build.sh | 10 -- build2.sh | 15 --- core/entrypoint.sh | 8 +- deploy-kopano.sh | 12 -- docker-compose.yml | 122 ++++++++++-------- migration.sh | 8 ++ .../00-create-kopano-user.sql | 2 + mysql/etc/mysql/conf.d/mysql.cnf | 1 + mysql/etc/mysql/conf.d/mysqldump.cnf | 4 + mysql/etc/mysql/mysql.conf.d/mysqld.cnf | 86 ++++++++++++ .../mysql/mysql.conf.d/mysqld_safe_syslog.cnf | 2 + webapp/.env | 0 13 files changed, 178 insertions(+), 95 deletions(-) create mode 100644 .env delete mode 100644 build.sh delete mode 100644 build2.sh delete mode 100644 deploy-kopano.sh create mode 100644 migration.sh create mode 100644 mysql/docker-entrypoint-initdb.d/00-create-kopano-user.sql create mode 100644 mysql/etc/mysql/conf.d/mysql.cnf create mode 100644 mysql/etc/mysql/conf.d/mysqldump.cnf create mode 100644 mysql/etc/mysql/mysql.conf.d/mysqld.cnf create mode 100644 mysql/etc/mysql/mysql.conf.d/mysqld_safe_syslog.cnf delete mode 100644 webapp/.env diff --git a/.env b/.env new file mode 100644 index 0000000..56a12cd --- /dev/null +++ b/.env @@ -0,0 +1,3 @@ +# database credentials +MYSQL_ROOT_PASSWORD=modT9&?. +MYSQL_KOPANO_PASSWORD=Asdf2345 diff --git a/build.sh b/build.sh deleted file mode 100644 index c9c2088..0000000 --- a/build.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/bash -# docker run -d --name apache -p80:80 -v/root/kopano/dist:/usr/local/apache2/htdocs httpd -DOCKER_BUILDKIT=1 docker build -f kopano.dockerfile -t kopano . -docker container prune -f -docker create --name kopano kopano:latest -docker export kopano | docker import - kopano:squashed -# docker run -d --name kopano kopano:squashed -# docker exec -it kopano bash -# docker stop kopano -# docker rm kopano \ No newline at end of file diff --git a/build2.sh b/build2.sh deleted file mode 100644 index 0eb6b37..0000000 --- a/build2.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/bash -# docker login --username baloan --password 'yZBCUs5&@?:.' -# docker run -d --name apache -p80:80 -v/root/kopano/dist:/var/www httpd -export DOCKER_BUILDKIT=1 -# cd ~/kopano/core; docker build -t core . -# cd ~/kopano/webapp; docker build -t webapp . -cd ~/kopano/postfix; docker build -t postfix . -cd ~/kopano -# docker container prune -f -# docker create --name kopano kopano:latest -# docker export kopano | docker import - kopano:squashed -# docker run -d --name kopano kopano:squashed -# docker exec -it kopano bash -# docker stop kopano -# docker rm kopano \ No newline at end of file diff --git a/core/entrypoint.sh b/core/entrypoint.sh index c52cd2a..22d83e5 100644 --- a/core/entrypoint.sh +++ b/core/entrypoint.sh @@ -1,4 +1,10 @@ #!/usr/bin/env bash set -e -# export APACHE_RUN_DIR=/var/www +sed -i \ + -e's/#mysql_host = localhost/mysql_host = mysql/' \ + -e's/#mysql_user = root/mysql_user = kopano/' \ + -e's/#mysql_password =/mysql_password = Asdf2345/' \ + /etc/kopano/server.cfg +# runas user kopano +chown kopano:kopano /var/lib/kopano/attachments exec "$@" diff --git a/deploy-kopano.sh b/deploy-kopano.sh deleted file mode 100644 index d4fbcc4..0000000 --- a/deploy-kopano.sh +++ /dev/null @@ -1,12 +0,0 @@ -apt-get update -export DEBIAN_FRONTEND=noninteractive -export TZ=Europe/Berlin -apt-get install -y tzdata z-push apache2 -tar xzf core-11.0.2.50.507cbae-Ubuntu_20.04-amd64.tar.gz -tar xzf webapp-6.0.0.57.1049268-Ubuntu_20.04-all.tar.gz -for F in ~/core-11.0.2.50.507cbae-Ubuntu_20.04-amd64/*.deb; do dpkg --unpack --no-triggers $F; done -for F in ~/webapp-6.0.0.57.1049268-Ubuntu_20.04-all/*.deb; do dpkg --unpack --no-triggers $F; done -apt-get install -f -y -# cleanup install -apt-get clean -rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* ~/.cache ~/.npm diff --git a/docker-compose.yml b/docker-compose.yml index e3f4a7d..b620bfc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,68 +1,76 @@ -version: '3' services: server: image: core depends_on: - - db + - mysql + volumes: + - attachments:/var/lib/kopano/attachments + - ./core/entrypoint.sh:/entrypoint.sh command: /usr/sbin/kopano-server - dagent: - image: core - depends_on: - - db - - server - command: /usr/sbin/kopano-dagent - spooler: - image: core - depends_on: - - db - - server - command: /usr/sbin/kopano-spooler - search: - image: core - depends_on: - - db - - server - command: /usr/sbin/kopano-search - postfix: - image: postfix - volumes: - - spool:/var/spool/postfix - webapp: - image: webapp - labels: - - traefik.enable=true - - traefik.http.routers.webapp.rule=Host(`$MAIL_DOMAIN`) && Path(`/webapp`) - - traefik.http.routers.webapp.tls=true - - traefik.http.routers.webapp.tls.certResolver=default - depends_on: - - server - networks: - - default - - traefik - z-push: - image: z-push - labels: - - traefik.enable=true - - traefik.http.routers.webapp.rule=Host(`$MAIL_DOMAIN`) && Path(`/Active-Sync-...`) - - traefik.http.routers.webapp.tls=true - - traefik.http.routers.webapp.tls.certResolver=default - volumes: - - z-push:/var/lib/z-push - depends_on: - - server - networks: - - default - - traefik - db: - image: mysql - restart: unless-stopped + mysql: + image: mysql:5.7 + environment: + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} volumes: - database:/var/lib/mysql + - ./mysql/etc/mysql:/etc/mysql + - ./mysql/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d + ports: + - 3307:3306 networks: traefik: external: true volumes: - - attachments: - - database: - - z-push: - - spool: + database: + attachments: + # z-push: + # spool: + + # dagent: + # image: core + # depends_on: + # - db + # - server + # command: /usr/sbin/kopano-dagent + # spooler: + # image: core + # depends_on: + # - db + # - server + # command: /usr/sbin/kopano-spooler + # search: + # image: core + # depends_on: + # - db + # - server + # command: /usr/sbin/kopano-search + # webapp: + # image: webapp + # labels: + # - traefik.enable=true + # - traefik.http.routers.webapp.rule=Host(`$MAIL_DOMAIN`) && Path(`/webapp`) + # - traefik.http.routers.webapp.tls=true + # - traefik.http.routers.webapp.tls.certResolver=default + # depends_on: + # - server + # networks: + # - default + # - traefik + # z-push: + # image: z-push + # labels: + # - traefik.enable=true + # - traefik.http.routers.webapp.rule=Host(`$MAIL_DOMAIN`) && Path(`/Active-Sync-...`) + # - traefik.http.routers.webapp.tls=true + # - traefik.http.routers.webapp.tls.certResolver=default + # volumes: + # - z-push:/var/lib/z-push + # depends_on: + # - server + # networks: + # - default + # - traefik + # postfix: + # image: postfix + # volumes: + # - spool:/var/spool/postfix diff --git a/migration.sh b/migration.sh new file mode 100644 index 0000000..7b81ad4 --- /dev/null +++ b/migration.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +docker exec -it kopano-mysql-1 sh <