vivasoft / laravel-docker
如果您想使用docker与laravel项目结合,此包将帮助您创建容器。它包含运行laravel应用程序所需的大部分软件;同时也提供了根据您的需求自定义容器的灵活性。
Requires
- php: >=7.0
- illuminate/support: >=5.5
This package is auto-updated.
Last update: 2024-09-11 12:39:53 UTC
README
如果您想使用 docker 与您的laravel项目结合,此包将帮助您创建容器。它包含运行laravel应用程序所需的大部分软件;同时也提供了根据您的需求自定义容器的灵活性。
目录
先决条件
- Docker Engine >= 17.04.0
与新的laravel安装一起使用
#安装过程
YouTube链接: https://youtu.be/7qyH4sO3mcs
第1步
打开您的终端,导航到您的项目目录,并运行以下命令以安装最新版本。
docker run --rm --interactive --tty --volume ${PWD}:/app composer create-project --prefer-dist laravel/laravel .
第2步
使用以下命令安装 vivasoft/laravel-docker 包
docker run --rm --interactive --tty --volume ${PWD}:/app composer require vivasoft/laravel-docker:dev-master
第3步
运行以下命令以将您的docker文件发布到根项目目录。
docker run --rm --interactive --tty --volume ${PWD}:/app composer php artisan vivasoft:dockerInstall
应将包含两个其他文件 docker-compose.yml 和 Dockerfile 的新文件夹 .docker 复制到您的根安装目录。
注意
在构建docker镜像之前,您应该更新您的 数据库 凭据。
第4步
运行应用程序
docker-compose up -d
这可能需要一些时间,所以请拿起一杯☕ 😬
完成后 - 更新您的 .env 文件 并访问您的IP地址:http://your_ipaddress:port [默认为:80]
与现有项目一起使用
第1步
安装 vivasoft/laravel-docker 包
composer require vivasoft/laravel-docker:dev-master
第2步
通过运行以下命令发布docker组件
php artisan vivasoft:dockerInstall
应将包含两个其他文件 docker-compose.yml 和 Dockerfile 的新文件夹 .docker 复制到您的根安装目录。
注意
在构建docker镜像之前,您应该更新您的 数据库 凭据。
第3步
运行应用程序
docker-compose up -d
完成后 - 更新您的 .env 文件 并访问您的IP地址:http://your_ipaddress:port [默认为:80]
更新 .env 文件
打开您的 docker-compose.yml 文件并使用相关值。
假设您的 docker-compose.yml 设置
#MySQL db: image: mysql:5.7.28 container_name: db restart: unless-stopped tty: true ports: - "3306:3306" environment: MYSQL_DATABASE: one_database MYSQL_ROOT_PASSWORD: root SERVICE_TAGS: dev SERVICE_NAME: mysql volumes: - dbdata:/var/lib/mysql - ./.docker/mysql/my.cnf:/etc/mysql/my.cnf networks: - app-network
在您的 .env 文件中,您必须更新以下值
的 DB_HOST 应该是您的 #MySQL Container 的 container_name。
的 DB_DATABASE 应该与 MYSQL_DATABASE 相同。
的 DB_PORT 应该与 3306 相同。
的 DB_PASSWORD 应该与 MYSQL_ROOT_PASSWORD 相同。
有关更多选项,请参阅 高级使用 部分。
示例
更新前
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD=
更新后
DB_CONNECTION=mysql DB_HOST=db DB_PORT=3306 DB_DATABASE=one_database DB_USERNAME=root DB_PASSWORD=root
PHP
默认 PHP 设置
#PHP app: build: context: . dockerfile: Dockerfile image: vivasoft/php container_name: app restart: unless-stopped tty: true environment: SERVICE_NAME: app SERVICE_TAGS: dev working_dir: /var/www volumes: - ./:/var/www - ./.docker/php/local.ini:/usr/local/etc/php/conf.d/local.ini networks: - app-network
php.ini:您可以在宿主机的.docker/php/local.ini文件中修改或添加任何设置,并应在应用程序上应用这些更改。Dockerfile:包含构建vivasoft/php镜像所需的全部工具。如果您需要其他 软件组件 或其他 PHP 扩展,可以轻松地将它们添加到该文件中。有关更多信息,请参阅 官方文档。修改文件后,您必须 重新构建 镜像。
数据库
默认 设置
#MySQL db: image: mysql:5.7.28 container_name: db restart: unless-stopped tty: true ports: - "3306:3306" environment: MYSQL_DATABASE: one_database MYSQL_ROOT_PASSWORD: root MYSQL_USER: homestead MYSQL_PASSWORD: secret SERVICE_TAGS: dev SERVICE_NAME: mysql volumes: - dbdata:/var/lib/mysql - ./.docker/mysql/my.cnf:/etc/mysql/my.cnf networks: - app-network
- 您可以使用更多的
环境变量。其中MYSQL_USER和MYSQL_PASSWORD最重要。
有关更多选项,请参阅 Docker MySQL 官方页面。
Nginx
默认 设置
#Nginx webserver: image: nginx:latest container_name: webserver restart: unless-stopped tty: true ports: - "80:80" - "443:443" volumes: - ./:/var/www - ./.docker/nginx/conf.d/:/etc/nginx/conf.d/ networks: - app-network
在另一个端口运行应用程序:更新 docker-compose.yml 文件。
#Nginx webserver: ... ports: - "NEW_PORT:80" - "443:443" ...
添加 SSL 证书:即将推出。
Redis
通过 SSH 连接
当您的容器启动并运行时,您可以使用以下命令通过 SSH 连接到您的容器:
docker exec -it CONTAINER_NAME bash
运行 php artisan 命令
有两种方法可以执行您的 php artisan 命令。
选项 1:
从您的项目根目录运行以下命令。
docker-compose exec app php artisan
注意: app 是您的 PHP 容器的名称。
选项 2:在您的 PHP 容器中 SSH 连接,然后运行 php artisan
连接到数据库
有关当前设置的详细信息,请参阅 更新 .env 文件 部分
DB_HOST 应该是您的 IP 地址DB_DATABASE 应该是 MYSQL_DATABASE。
的 DB_PORT 应该与 3306 相同。DB_USERNAME 应该是 MYSQL_ROOT_PASSWORD 或 MYSQL_USERDB_PASSWORD 应该是 MYSQL_ROOT_PASSWORD 或 MYSQL_PASSWORD。
高级使用
重新构建镜像
- 您可以使用
docker-compose up -d --build命令重新构建镜像。
即将推出
故障排除
- Windows 用户命令提示符:
- Windows 用户应使用 Power Shell。
- 如果您想使用命令提示符而不是 Power Shell,您必须指定 路径,例如:(c:\User\ProjectPath) 而不是
${PWD}。
- 尝试连接到 Docker 守护进程套接字时遇到权限被拒绝
- 端口绑定错误:
- 打开
docker-compose.yml文件并更新host机器端口。(例如:请参阅 nginx 在另一个端口运行应用程序的示例)
- 打开
部署
即将推出
贡献者
许可证
Vivasoft Laravel Docker 在 MIT 许可证的条款下授权。查看许可证