📜  评论安装程序 laravel avec docker - PHP (1)

📅  最后修改于: 2023-12-03 15:28:09.422000             🧑  作者: Mango

评论安装程序 laravel avec docker - PHP

如果你是一位PHP开发人员,想要加快你的开发速度,并且想要一种简单易用的部署方式,那么Laravel+Docker可能是一个不错的选择。

什么是Laravel和Docker

Laravel是一种现代化的PHP开发框架,它提供了全面的工具集,包括路由、中间件、控制器、模型、视图等,使得开发者能够快速构建WEB应用程序。另外,Laravel还拥有非常强大的ORM(对象关系映射),能够帮助开发者轻松地操作数据库。

Docker是一种开源的容器技术,它允许开发人员将应用程序及其依赖项打包到一个容器中,以便于跨不同环境的部署和运行,保证应用在任何环境中的一致性。

安装Laravel with Docker
前提
步骤
  1. 创建一个目录 myapp,并在此目录下创建一个 Dockerfile 文件,用于指定应用程序的镜像。
FROM php:7.4-fpm

RUN apt-get update && apt-get install -y \
    git \
    zip \
    unzip \
    libpq-dev \
    libfreetype6-dev \
    libjpeg62-turbo-dev \
    libpng-dev

RUN docker-php-ext-install pdo pdo_mysql pdo_pgsql && \
    docker-php-ext-configure gd --with-freetype --with-jpeg && \
    docker-php-ext-install gd

COPY . /var/www/html

RUN chown -R www-data:www-data /var/www/html/storage /var/www/html/bootstrap/cache

CMD ["php-fpm"]

EXPOSE 9000

这里我们基于php:7.4-fpm镜像来创建我们的Laravel应用程序,安装了PHP扩展、git、zip和unzip等工具以及其他必要的库文件(如postgresql库文件),最后我们将让docker执行命令CMD ["php-fpm"]以启动fpm。

  1. 在我们创建的 myapp 目录下,创建一个 docker-compose.yml 文件用于启动我们的容器。
version: '2'

services:
  web:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "8080:80"
    volumes:
      - .:/var/www/html/
    depends_on:
      - db
  db:
    image: postgres:11
    environment:
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: password
      POSTGRES_DB: laravel_db
    volumes:
      - laravel_db:/var/lib/postgresql/data

volumes:
  laravel_db:

这里我们定义了两个服务 webdb。在 web服务中我们使用前面定义的 Dockerfile 来创建我们的应用容器,并将本地目录挂载到容器的 /var/www/html/ 目录下。另外,我们通过depends_on关键字来定义依赖关系,使得 web 服务在 db 服务启动之后才会启动。在 db 服务中,我们使用了PostgreSQL 11的镜像,并给它定义了一些环境变量来设置数据库的用户名、密码以及数据库名称。此外,我们还定义了一个名为larevel_db的数据卷来保证数据的持久化。

  1. myapp 目录下,运行以下命令来构建和启动容器:
docker-compose up --build

现在,我们的Laravel应用程序已经在Docker容器中启动了,通过访问 localhost:8080 可以查看程序的Welcome页面。如果你想通过命令行来运行Laravel的命令,可以执行以下命令:

docker-compose exec web php artisan <command>
结论

通过使用Docker,我们可以简化Laravel应用程序的部署过程。使用Docker Compose来管理容器,我们可以方便地定义多个服务以及它们之间的依赖关系,保证整个应用程序可以以一致的方式进行部署和运行。开始使用Laravel+Docker吧,让你的开发体验更加愉快!