Настройка и проблема
У меня есть файл docker-compose, который я запустил на своем сервере. Поработав с ним некоторое время, я хотел, чтобы он был доступен под вторым доменным именем, поэтому я перезапустил его с помощью следующих команд:
docker-compose stop
docker-compose rm # answering yes in the process
docker-compose up -d --force-recreate
Казалось, что базовое изображение owncloud было обновлено тем временем, потому что я обнаружил неудачное обновление, упомянутое в журналах owncloud (см. Конец публикации). В журнале предлагается сделать occ app:disable richdocuments
чтобы отключить плагин, который не позволяет обновлению установки. Когда я сейчас пытаюсь отключить приложение:
docker-compose run --rm -u www-data owncloud php occ app:disable richdocuments
# yields: Command "app:disable" is not defined.
# Look whats possible then
docker-compose run --rm -u www-data owncloud php occ list --raw
# yields: check, help, list, status, app:check-code, maintenance:install and some integrity checks
# What is the status then?
docker-compose run --rm -u www-data owncloud php occ status
# yields:
# ownCloud is not installed - only a limited number of commands are available
# Failed to connect to the database: An exception occured in driver: SQLSTATE[HY000] [14] unable to open database file
Похоже, что owncloud occ tool
не полностью доступен. Кроме того, подключение к базе данных, кажется, не удается.
Вопросы
- Как я могу получить доступ к инструменту
occ
с помощью этой установки owncloud ? - Почему не удается подключиться к базе данных?
Рекомендации
docker-compose.yml
:
version: '2.1'
# Following
# https://owncloud.org/news/docker-owncloud-traefik-reverse-proxy-lets-encrypt-ssl/
volumes:
files:
driver: local
mysql:
driver: local
backup:
driver: local
redis:
driver: local
services:
owncloud:
image: owncloud/server:10.0
restart: unless-stopped
depends_on:
- db
- redis
environment:
- OWNCLOUD_DOMAIN=owncloud.mydomain.de
- OWNCLOUD_DB_TYPE=mysql
- OWNCLOUD_DB_NAME=owncloud
- OWNCLOUD_DB_USERNAME=owncloud
- OWNCLOUD_DB_PASSWORD=owncloud
- OWNCLOUD_DB_HOST=db
- OWNCLOUD_ADMIN_USERNAME=owncloud_admin
- OWNCLOUD_ADMIN_PASSWORD=password
- OWNCLOUD_UTF8MB4_ENABLED=true
- OWNCLOUD_REDIS_ENABLED=true
- OWNCLOUD_REDIS_HOST=redis
networks:
- web
- internal
labels:
- traefik.enable=true
- traefik.frontend.rule=Host:owncloud.mydomain.de, owncloud.myotherdomain.de
- traefik.port=80
- traefik.docker.network=web
healthcheck:
test: ["CMD", "/usr/bin/healthcheck"]
interval: 30s
timeout: 10s
retries: 5
volumes:
- files:/mnt/data
db:
image: webhippie/mariadb:latest
restart: unless-stopped
environment:
- MARIADB_ROOT_PASSWORD=owncloud
- MARIADB_USERNAME=owncloud
- MARIADB_PASSWORD=owncloud
- MARIADB_DATABASE=owncloud
- MARIADB_MAX_ALLOWED_PACKET=128M
- MARIADB_INNODB_LOG_FILE_SIZE=64M
- MARIADB_INNODB_LARGE_PREFIX=ON
- MARIADB_INNODB_FILE_FORMAT=Barracuda
healthcheck:
test: ["CMD", "/usr/bin/healthcheck"]
interval: 30s
timeout: 10s
retries: 5
volumes:
- mysql:/var/lib/mysql
- backup:/var/lib/backup
networks:
- internal
redis:
image: webhippie/redis:latest
restart: unless-stopped
environment:
- REDIS_DATABASES=1
healthcheck:
test: ["CMD", "/usr/bin/healthcheck"]
interval: 30s
timeout: 10s
retries: 5
volumes:
- redis:/var/lib/redis
networks:
- internal
# see https://help.nextcloud.com/t/collabora-configuration-with-docker-compose/3970
office:
image: collabora/code
container_name: office
restart: unless-stopped
ports:
- 9980:9980
cap_add:
- MKNOD
environment:
- DOMAIN=office.mydomain.de
- dictionaries="de en"
labels:
- traefik.enable=true
- traefik.frontend.rule=Host:office.mydomain.de
- traefik.port=9980
- traefik.docker.network=web
networks:
- web
- internal
networks:
web:
external: true
internal:
Журналы Owncloud:
Copying db file...
Copying utf8mb4 config...
Fixing hook perms...
Fixing base perms...
Fixing data perms...
Upgrading server database...
ownCloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
Set log level to debug
Repair step: Repair MySQL database engine
Repair step: Repair MySQL collation
Repair info: All tables already have the correct collation -> nothing to do
Repair step: Repair SQLite autoincrement
Repair step: Repair orphaned reshare
Repair step: Repair duplicate entries in oc_lucene_status
Repair info: lucene_status table does not exist -> nothing to do
Repair step: Upgrade app code from the marketplace
Repair warning: You have incompatible or missing apps enabled that could not be found or updated via the marketplace.
Repair warning: Please install or update the following apps manually or disable them with: occ app:disable richdocuments
Repair warning: For manually updating, see https://doc.owncloud.org/server/10.0/go.php?to=admin-marketplace-apps
OC\RepairException: Upgrade is not possible
Update failed
Обновить
Для удобства чтения и изменения базы данных я добавил phpmyadmin в настройку:
db_admin:
image: phpmyadmin/phpmyadmin
restart: unless-stopped
depends_on:
- db
links:
- db
networks:
- web
- internal
environment:
- MYSQL_USERNAME=owncloud_username
- MYSQL_ROOT_PASSWORD=owncloud_root_password
labels:
traefik.enable: true
traefik.frontend.rule: "Host:managedb.mydomain.de"
traefik.port: 80
traefik.docker.network: web
traefik.frontend.auth.basic: "username:hashed_password_string"
traefik.frontend.entryPoints: "https"
traefik.frontend.passHostHeader: true
traefik.backend.loadbalancer.stickiness: true
В базе данных я нигде не могу найти richdocuments
особенно в таблице oc_appconfig
.