如何在Docker中部署Laravel应用

2023-04-19 12:03:00 docker 部署 如何在

在Docker中部署Laravel应用是一个很好的方式,可以让我们更快地开发应用,更方便地管理和部署它们,以及更好地利用计算资源。本文将介绍如何使用Docker部署Laravel应用。

首先,我们需要准备好Docker环境,并确保安装了最新版本的Docker和docker-compose。然后,在项目根目录中创建一个Dockerfile,其内容如下:

FROM php:7.2-apache

RUN apt-get update -y && apt-get install -y libmcrypt-dev mysql-client libmagickwand-dev --no-install-recommends

RUN docker-php-ext-install pdo_mysql

RUN pecl install imagick

RUN a2enmod rewrite

COPY . /var/www/html

RUN chown -R www-data:www-data /var/www/html

WORKDIR /var/www/html

RUN composer install

RUN php artisan key:generate

上面的Dockerfile是用来安装Laravel应用所需的依赖,并将应用代码拷贝到/var/www/html目录中。

接下来,我们需要创建一个docker-compose.yml文件,用于定义Docker容器之间的关系,以及指定容器运行时所需的配置,其内容如下:

version: '3'

services:
  web:
    build: .
    ports:
      - "80:80"
    volumes:
      - .:/var/www/html
    environment:
      DB_HOST: db
      DB_DATABASE: laravel
      DB_USERNAME: laravel
      DB_PASSWORD: secret
  db:
    image: mysql:5.7
    volumes:
      - dbdata:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: laravel
      MYSQL_USER: laravel
      MYSQL_PASSWORD: secret

volumes:
  dbdata:

上面的docker-compose.yml文件定义了两个容器,一个是web容器,用于运行Laravel应用,另一个是db容器,用于运行MySQL数据库。它们之间通过环境变量进行关联,以便web容器可以访问MySQL数据库。

最后,我们可以使用docker-compose来启动容器,以部署Laravel应用:

docker-compose up -d

上面的命令会启动容器,并将应用代码拷贝到/var/www/html目录中,以及安装依赖,生成应用密钥等。

现在,我们已经完成了在Docker中部署Laravel应用的过程,可以使用浏览器访问应用,并开始使用它了。

总之,在Docker中部署Laravel应用是一个很好的方式,可以让我们更快地开发应用,更方便地管理和部署它们,以及更好地利用计算资源。

相关文章