连接到远程数据库的容器化 Laravel 应用程序

时间:2021-07-18 14:43:18

标签: laravel docker docker-compose github-actions

大家好,我有一个 Laravel 应用程序,它应该连接到生产中的远程 MYSQL 数据库,为了简化部署,我正在使用 docker。我已经设置了一个 GitHub 操作工作流,当我推送到 master 分支时会触发该工作流,该工作流本质上会运行几个测试,然后将我的应用程序构建到一个图像中,然后推送到 docker hub。 为了避免在构建过程中运行 composer dump-autoload 时出现数据库连接问题,我允许来自任何主机的连接(将绑定地址更改为 0.0 .0.0 在 mysql 配置),并设置 mysql 用户从任何主机连接。这似乎可以解决问题,但我的担忧显然是将我的数据库服务暴露给全世界。幸运的是,可以为 Github 操作设置我自己的专用服务器,这意味着我可以轻松地将我的数据库服务限制在该主机上。那是理想的解决方案,还是有一种无需连接数据库即可运行工作流的方法?

1 个答案:

答案 0 :(得分:0)

尝试使用 SSH 隧道连接到远程数据库

ssh -N -L 3336:127.0.0.1:3306 [USER]@[REMOTE_SERVER_IP]

有了这个,你不需要将 MySQL 发布到全世界,并且可以将它绑定到远程主机上的 127.0.0.1。