gpt4 book ai didi

docker - docker-compose中的env文件和MariaDB

转载 作者:行者123 更新时间:2023-12-02 19:28:29 25 4
gpt4 key购买 nike

我正在尝试使用MariaDB在Raspberry Pi 3B +上设置nextcloud,大致遵循以下示例:

https://github.com/nextcloud/docker/blob/master/.examples/docker-compose/with-nginx-proxy/mariadb/apache/docker-compose.yml

我的撰写文件如下所示:

version: '3'

services:
db:
image: mariadb
env_file:
- pi.env
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: always
volumes:
- ${BASE_PATH}/db:/var/lib/mysql

nextcloud:
image: nextcloud:apache
env_file:
- pi.env
restart: always
ports:
- 80:80
- 443:443
volumes:
- ${BASE_PATH}/www:/var/www
depends_on:
- db
environment:
- MYSQL_HOST=db

然后是pi.env文件:
MYSQL_PASSWORD=secure-password
MYSQL_ROOT_PASSWORD=even-more-secure.password
MYSQL_DATABASE=nextcloud
MYSQL_USER=nextcloud
BASE_PATH=/tmp

从yaml和env文件所在的目录运行 docker-compose up后,两个容器可以正常启动。遗憾的是,无法建立数据库连接,因为db-container仅接受空密码(弹出容器中的shell并运行 mysql -u nextcloud而不输入密码即可访问数据库)。不过,可以从容器正确地回显$ MYSQL_ROOT_PASSWORD环境变量。

如果我使用 docker run -e MYSQL_ROOT_PASSWORD=secure-password单独启动mariadb图像,那么一切都会按预期进行。

有人可以指出我的错误吗?

最佳答案

我终于在一段时间前完成了设置。可悲的是,我再也无法重构该技巧了(而且我的git commit消息对我 future 的 future 还不像我希望的那样清晰:D)。

但是在我看来,仅在pi.env文件而不是docker-compose.yaml中声明数据库密码的环境变量就可以了。

我的docker-compose.yaml:

services:
db:
image: jsurf/rpi-mariadb
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
restart: always

volumes:
- db:/var/lib/mysql
env_file:
- pi.env

nextcloud:
image: nextcloud:apache
restart: always
container_name: nextcloud
volumes:
- www:/var/www/html
environment:
- VIRTUAL_HOST=${VIRTUAL_HOST}
- LETSENCRYPT_HOST=${VIRTUAL_HOST}
- LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL}
- MYSQL_HOST=db
- NEXTCLOUD_TRUSTED_DOMAINS=${VIRTUAL_HOST}
- NEXTCLOUD_TRUSTED_DOMAINS=proxy
env_file:
- pi.env
depends_on:
- db
networks:
- proxy-tier
- default

pi.env:
MYSQL_PASSWORD=secure-password
MYSQL_ROOT_PASSWORD=even-more-secure.password
MYSQL_DATABASE=nextcloud
MYSQL_USER=nextcloud

但是谢谢你,少了@Zanndorin!

关于docker - docker-compose中的env文件和MariaDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53921335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com