使用 PHP 5.6 和 MySQL 5.7.20 对 Laravel 4.1 项目进行 Docker 化

问题描述 投票:0回答:1

说明: 我有一个现有的 Laravel 4.1 项目,需要 PHP 5.6 和 MySQL 5.7.20。我的开发环境是 Ubuntu 20.04,PHP 8.1 和 MySQL 8.0.35。我希望 Dockerize 这个项目以确保一致的开发环境。

要求: 在 Docker 容器中使用 PHP 5.6。 Docker 容器中的 MySQL 版本 5.7.20。 为 Laravel 4.1 设置必要的配置。

问题: PHP 5.6 的 Dockerfile: 我需要有关创建为我的 Laravel 4.1 项目安装 PHP 5.6 的 Dockerfile 的指导。我应该包括哪些具体步骤和命令?

MySQL 5.7.20 的 Dockerfile: 同样,如何为 MySQL 5.7.20 创建 Dockerfile 以确保与我的 Laravel 4.1 项目兼容?我需要注意任何具体配置或设置吗?

Docker 撰写: 我的 docker-compose.yml 文件应该是什么样子来编排 PHP 和 MySQL 容器? Laravel 4.1 有什么最佳实践或注意事项吗?

Laravel 4.1 配置: 我需要调整任何特定的 Laravel 配置才能与 Docker 内的 PHP 5.6 和 MySQL 5.7.20 无缝工作吗?

开发流程: 我应该如何构建 Docker 设置以实现高效的开发工作流程?我应该采用什么工具或做法吗?

其他背景: 我已经检查了 Docker Hub 中的 PHP 5.6 和 MySQL 5.7.20 映像,但希望获得有关为我的场景选择最合适的映像的指导。 有关管理 Docker 中的依赖项和环境变量的任何提示或建议。

docker laravel-4 php-5.6 laravel-config
1个回答
0
投票

这个程序对于这个项目来说是成功的,

  1. https://github.com/a2way-com/drop-in-docker-php使用这个你可以轻松地对接一个laravel应用程序。

  2. 必须将其更改为适合该项目的方式,这里我附上了我的更改。 应用程序.Dockerfile

来自 php:5.6-fpm-alpine 参数UID 运行 apk --update 添加阴影 RUN usermod -u $UID www-data && groupmod -g $UID www-data 运行 apk --update 添加 sudo 运行 echo "www-data ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers RUN apk add --no-cache libmcrypt-dev libmcrypt 运行 apk --update 添加作曲家 运行 docker-php-ext-install mcrypt 运行 docker-php-ext-enable mcrypt 运行 docker-php-ext-install pdo_mysql 运行 apk add --update npm 运行 apk add --update make

docker-compose.yml

版本:'3.8' 名称:'drop-in-docker-php' 服务: mysql: 图片:mysql:5.7.44 环境文件:

  • ./env/mysql.env 端口:
  • $MYSQL_PORT:3306 卷:
  • ./vols/mysql/:/var/lib/mysql/ 用户:$UID:$UID 管理员: 图片:管理员:4.8.1-独立 环境文件:
  • ./env/adminer.env 端口:
  • $ADMINER_PORT:8080 邮递员: 图片:mailhog/mailhog:v1.0.1 端口:
  • $MAILHOG_SMTP_PORT:1025
  • $MAILHOG_UI_PORT:8025 应用程序: 图片:$APP_IMAGE 建造: 语境: 。 dockerfile: ./Dockerfiles/app.Dockerfile 参数: 用户 ID:$UID 卷:
  • $APP_VOLUMES_SRC:/var/www/html/
  • ./vols/app/docker-user-home/:/home/www-data/ 环境文件:
  • ./env/app.env 静止的: 图片:nginx:1.24.0-alpine3.17 卷:
  • $STATIC_VOLUMES_PUBLIC:/usr/share/nginx/html/ 代理人: 图片:$PROXY_IMAGE 建造: 语境: 。 dockerfile: ./Dockerfiles/proxy.Dockerfile 端口:
  • $PROXY_PORT:80 环境文件: - ./env/proxy.env

更改以上两个文件并正确制作env文件即可成功对接该项目。

© www.soinside.com 2019 - 2024. All rights reserved.