nguonchhay/dockerlaravel

Dockerlaravel 用于增强本地开发

5.6.0 2018-09-05 04:34 UTC

This package is not auto-updated.

Last update: 2020-07-30 11:07:50 UTC


README

DockerLaravel 创建必要的 Docker 容器(web 服务器、数据库、PHP、邮件、Redis、Couchdb)以运行您的 Laravel 框架项目。该包提供了一个包装脚本在 vendor/bin/dockerlaravel,简化了 Docker 的处理并执行所有必要的配置。

我们创建此包是为了使 Laravel 框架项目的开发更容易,并创建一个简单可重用的包,易于维护并适用于标准项目。

此 Docker 镜像的功能

  • PHP: 7.1
  • Nginx: 1.7
  • Mariadb: 10.3
  • Mailhog: 最新版
  • Redis: 3.0
  • Couchdb: 1.6

安装 docker

https://docs.dockerd.com.cn/installation/ (tested with docker v1.9 - v1.12)

安装 docker-compose

我们使用 docker-compose 进行所有自动配置

https://docs.dockerd.com.cn/compose/install/ (tested with docker-compose v1.5 - v1.6)

仓库包含一个 Dockerfile,每次更改后将在 Docker Hub 上自动构建,并由 docker-compose 用于构建必要的容器。

在 Mac 或 Windows 上

它已经测试过与 docker for Mac 一起工作,但尚未与 docker for Windows 一起工作。请随意尝试并告诉我们您是否无法等待。

将 dockerlaravel 安装到您的发行版中

在您的 composer 中将 nguonchhay/dockerlaravel 添加为开发依赖项。

composer require --dev nguonchhay/dockerlaravel 5.6.*

db 指向您的 host

0.0.0.0 db

注意:此步骤在您首次使用 docker 时需要。对于下一个设置,您可以跳过此步骤。

启动 docker 服务

vendor/bin/dockerlaravel up -d

domain 指向您的 host

0.0.0.0 your-domain-name test.your-domain-name # port does not need here

启动 docker 服务后,您将获得与根目录完全相同的域名。

示例:

Root directory is `laravel` then your domain name is `laravel:8080`

- Open your website

	http://laravel:8080
	
- Open your test website

	http://test.laravel:8080

检查状态

vendor/bin/dockerlaravel ps

为在本地环境中运行配置 .env

APP_ENV=local
APP_KEY=your-generated-key
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=your-local-domain

DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=dockerlaravel
DB_USERNAME=root
DB_PASSWORD=root

BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

REDIS_HOST=0.0.0.0
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

PUSHER_APP_ID=
PUSHER_KEY=
PUSHER_SECRET=

启动 app 服务

vendor/bin/dockerlaravel run app /bin/bash

app 容器是您运行与数据库连接的命令的地方。

启动 db 服务

vendor/bin/dockerlaravel run db /bin/bash

db 容器是您可以检查您的 MySQL 数据库信息的地方。已创建了两个默认数据库:dockerlaraveldockerlaravel_test

注意:服务目前可以是 appwebdatadbrediscouchdb

访问CouchDB

从您的宿主机,您可以通过Web界面或命令行访问couchdb

Web: http://hostname-couchdb:5984/_utils/ -> 将 hostname 替换为项目名称

命令行: curl -X GET http://hostname-couchdb:5984/_all_dbs

在您的 app 容器内部,您也可以通过命令行访问couchdb

vendor/bin/dockerlaravel run app /bin/bash
curl -X GET http://couchdb:5984/_all_dbs

连接到运行中的服务

运行 vendor/bin/dockerlaravel ps 并复制您想要连接的容器的名称。

使用您刚才复制的名称运行 docker exec -it <containername> /bin/bash。这样您就可以在运行中的容器中工作,而不是创建一个新的容器。

检查容器中的开放端口

vendor/bin/dockerlaravel run SERVICE netstat --listen

感谢 Sebastian Helzle