gpt4 book ai didi

php - Docker,引用不同的容器。使用 php 命令调用 mysqldump

转载 作者:太空宇宙 更新时间:2023-11-03 11:43:46 25 4
gpt4 key购买 nike

我已经使用 Docker 在 Symfony3 项目上安装了一个数据库备份包 ( https://github.com/dizda/CloudBackupBundle ),但由于找不到 PHP 或 MySQL,我无法让它工作

当我通过 exec、run 或 cron 运行 php app/console --env=prod dizda:backup:start 时。我通过 PHP 镜像获取 mysqldump 命令未找到错误,或从 Mysql/db 镜像获取 PHP 未找到错误。

如何运行 php 命令,然后运行 ​​mysqldump 命令。

我的docker-compose文件如下:

version: '2'
services:
web:
# image: nginx:latest
build: .
restart: always
ports:
- "80:80"
volumes:
- .:/usr/share/nginx/html
links:
- php
- db
- node
volumes_from:
- php
volumes:
- ./logs/nginx/:/var/log/nginx
php:
# image: php:fpm
restart: always
build: ./docker_setup/php
links:
- redis
expose:
- 9000
volumes:
- .:/usr/share/nginx/html
db:
image: mysql:5.7
volumes:
- "/var/lib/mysql"
restart: always
ports:
- 8001:3306
environment:
MYSQL_ROOT_PASSWORD: gfxhae671
MYSQL_DATABASE: boxstat_db_live
MYSQL_USER: boxstat_live
MYSQL_PASSWORD: GfXhAe^7!
node:
# image: //digitallyseamless/nodejs-bower-grunt:5
build: ./docker_setup/node
volumes_from:
- php
redis:
image: redis:latest

我是 docker 的新手,所以您可以随意看到简单的改进...我正处于试错阶段!

最佳答案

包含您的代码的图像应该具有您的代码运行所需的所有依赖项。

在这种情况下,您的代码需要在本地安装 mysqldump 才能运行。我认为这是您代码的依赖项。

向您的 Dockerfile 添加一个 RUN 行可能是有意义的,它将安装 mysqldump 命令,以便您的代码可以使用它。

另一种方法是将数据库备份过程外部化,而不是将其留给您的应用程序。您可以拥有一些在 cron 上运行的容器,并以这种方式执行 mysqldump 过程。

我认为这两种方法都是干净的。

关于php - Docker,引用不同的容器。使用 php 命令调用 mysqldump,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40050347/

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