vivasoft/laravel-docker

如果您想使用docker与laravel项目结合,此包将帮助您创建容器。它包含运行laravel应用程序所需的大部分软件;同时也提供了根据您的需求自定义容器的灵活性。

dev-master 2021-01-11 04:45 UTC

This package is auto-updated.

Last update: 2024-09-11 12:39:53 UTC


README

Vivasoft Ltd

如果您想使用 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.ymlDockerfile 的新文件夹 .docker 复制到您的根安装目录。

注意

在构建docker镜像之前,您应该更新您的 数据库 凭据。

对于 高级使用,您可能需要更新您的 nginx 配置。

第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.ymlDockerfile 的新文件夹 .docker 复制到您的根安装目录。

注意

在构建docker镜像之前,您应该更新您的 数据库 凭据。

对于 高级使用,您可能需要更新您的 nginx 配置。

第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 Containercontainer_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_USERMYSQL_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_PASSWORDMYSQL_USER
DB_PASSWORD 应该是 MYSQL_ROOT_PASSWORDMYSQL_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 许可证的条款下授权。查看许可证