自己擼一個 LaraDock(使用 Docker LNMP 部署 PHP 開發環境)

yanlongma發表於2019-07-16

專案簡介

Docker LNMP 是基於 docker-compose 開發的執行在 Docker 上的 LNMP 開發環境,包含 PHP、MySQL、Redis 等映象並支援多版本切換,滿足您的學習、開發和測試需求。

Github 地址:https://github.com/yanlongma/docker-lnmp

包含映象

Docker LNMP 包含以下映象,每種映象支援多個版本:

  • nginx
  • php-fpm (7.3 - 7.2 - 7.1 - 5.6)
  • mysql (8.0 - 5.7 - 5.6)
  • mongo
  • redis (5.0 - 4.0)
  • memcached (1.5.16 - 1.5 - 1)

其中:

php-fpm 預設是 7.1 版本,如需使用其它版本,配置 .env 檔案中 PHP_VERSION 即可;

mysql 預設是 5.7 版本,如需使用其它版本,配置 .env 檔案中 MYSQL_VERSION 即可;

下載使用

Docker LNMP 預設將同級目錄對映到 php-fpm 容器的工作目錄,在專案的同級目錄下載 Docker LNMP:

$ git clone https://github.com/yanlongma/docker-lnmp.git

進入 docker-lnmp 目錄,生成配置檔案 .env

$ cd docker-lnmp
$ cp env-template .env

如需對映到其它目錄,配置 .env 檔案中 WEB_ROOT_PATH 即可。

啟動服務

在 docker-lnmp 目錄,啟動服務,命令如下:

$ docker-compose up -d nginx
Creating network "docker-lnmp_default" with the default driver
Creating docker-lnmp_mysql_1   ... done
Creating docker-lnmp_php-fpm_1 ... done
Creating docker-lnmp_nginx_1   ... done

nginx 預設會啟動 php-fpm 和 mysql 服務,如需啟動其它服務請手動新增,可選服務有 mongo、redis、memcached。

啟動成功後,在 docker-lnmp 同級目錄新建 phpinfo.php 檔案,瀏覽器訪問 http://localhost/phpinfo.php,則可看到 phpinfo() 相關資訊。

關閉服務

在 docker-lnmp 目錄,關閉服務,命令如下:

$ docker-compose down

構建服務

如修改 dockerfile 檔案,需重新構建服務,如重新構建 php-fpm 命令如下:

$ docker-compose build php-fpm

建議先關閉服務,構建完成再重啟服務。

虛擬主機

配置虛擬主機請參考 nignx/sites/yii.conf 檔案,配置完需構建並重啟服務。

License

MIT license

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章