我正在尝试对Laravel应用进行docker化。在我的本地计算机上,我有Mysql和MongoDB。
我有一个运行mysql
restore和mongorestore
来恢复生产数据库的脚本。
在本地环境中,我没有问题,因为mysql和mongodb是本地安装的。
现在,我用构建说明创建了一个docker-compose.yml
:
version: '3'
services:
app:
build:
context: .
dockerfile: .docker/Dockerfile.dev
image: laravel-docker
ports:
- 8080:80
volumes:
- /srv/app/vendor
- .:/srv/app
links:
- mariadb
- redis
redis:
image: redis:latest
mariadb:
image: mariadb:latest
environment:
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
- MYSQL_USER=root
mongo:
image: mongo
一切正常,但是我需要从mysql
容器运行app
命令(应该在mariadb容器中调用mysql
命令)
答案 0 :(得分:1)
只需在 app 容器中安装 MySQL客户端。
在您的Dockerfile中添加类似的内容:
apt-get install mysql-client
然后,如果它们属于同一网络,则应该可以使用服务名称从 app 容器连接到MySql服务器:
mysql -u USERNAME -p PASSWORD -h mariadb