我经常收到数据库连接错误。它可以正常工作一两天,但每次遇到此错误时都需要手动重新启动docker-compose。
在运行docker-compose日志时可以看到任何重要内容 我究竟做错了什么 ?在这里。
DockerFile
FROM wordpress
COPY wp-config.php /var/www/html/
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
EXPOSE 80
docker-compose 版本:“ 3.1”
services:
wordpress_db:
container_name: abcwordpressdb
image: mariadb:latest
restart: always
volumes:
- abcdb:/var/lib/mysql
environment:
MYSQL_USERNAME: root
MYSQL_ROOT_PASSWORD: password
ports:
- "3306:3306"
phpmyadmin:
container_name: abcphpmyadmin
image: phpmyadmin/phpmyadmin
links:
- wordpress_db:db
ports:
- "8181:80"
environment:
MYSQL_USERNAME: root
MYSQL_ROOT_PASSWORD: password
PMA_HOST: wordpress_db
wordpress:
build: ./wordpress
container_name: abc_wordpress
ports:
- "80:80"
volumes:
- ./wp-content:/var/www/html/wp-content/
restart: unless-stopped
volumes:
abcdb:
答案 0 :(得分:1)
数据库容器有时需要更长的时间才能出现。 因此,当您的应用程序容器“依赖”数据库连接时。很好地使用选项
depends_on:
- wordpress_db
这将确保在应用程序之前启动数据库容器
答案 1 :(得分:0)
在这里找到了解决方案 https://github.com/docker-library/mysql/issues/361
只需确保先运行备份,然后再运行
# Backup
docker exec CONTAINER /usr/bin/mysqldump -u root --password=root DATABASE > backup.sql
# Restore
cat backup.sql | docker exec -i CONTAINER /usr/bin/mysql -u root --password=root DATABASE
然后
docker-compose down
docker system prune --force --volumes
command: --disable-partition-engine-check
docker-compose up -d
运行它以在后台对其进行设置。