Docker Compose 是 Docker 官方提供的一个工具,可以通过配置文件来快速构建和管理多个 Docker 容器。在前端开发中,我们常常需要使用 Laravel 框架来开发 Web 应用,并且需要部署到服务器上。使用 Docker Compose 可以方便地管理多个 Laravel 应用实例的部署,使得部署过程更加简单、可重复和可扩展。
安装 Docker Compose
在安装 Docker Compose 之前,需要先安装 Docker。可以参考 Docker 官方文档进行安装。安装完成后,可以通过以下命令来检查 Docker 是否安装成功:
docker --version
安装 Docker Compose 需要先下载对应的二进制文件。可以使用以下命令来下载并安装最新版本的 Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
下载完成后,需要将下载的二进制文件赋予可执行权限:
sudo chmod +x /usr/local/bin/docker-compose
安装完成后,可以通过以下命令来检查 Docker Compose 是否安装成功:
docker-compose --version
配置 Docker Compose
在使用 Docker Compose 管理 Laravel 应用实例之前,需要先创建一个 Docker Compose 配置文件。在项目根目录下创建一个名为 docker-compose.yml
的文件,并添加以下内容:
// javascriptcn.com 代码示例 version: '3' services: app: build: context: . dockerfile: Dockerfile image: laravel-app container_name: laravel-app restart: always environment: - APP_NAME=Laravel - APP_ENV=local - APP_KEY= - APP_DEBUG=true - APP_URL=http://localhost - LOG_CHANNEL=stack - DB_CONNECTION=mysql - DB_HOST=db - DB_PORT=3306 - DB_DATABASE=laravel - DB_USERNAME=root - DB_PASSWORD= depends_on: - db volumes: - .:/var/www/html db: image: mysql:5.7 container_name: laravel-db restart: always environment: - MYSQL_DATABASE=laravel - MYSQL_USER=root - MYSQL_PASSWORD= - MYSQL_ROOT_PASSWORD= volumes: - ./mysql-data:/var/lib/mysql
这个配置文件定义了两个服务:app
和 db
。app
服务用于运行 Laravel 应用实例,db
服务用于运行 MySQL 数据库实例。
在 app
服务中,首先定义了 Dockerfile 的路径和名称,用于构建 Laravel 应用实例的镜像。然后定义了容器的名称、重启策略、环境变量、依赖关系和挂载卷。
在 db
服务中,定义了 MySQL 数据库实例的镜像、容器的名称、重启策略、环境变量和挂载卷。
需要注意的是,app
服务中的 DB_HOST
环境变量需要设置为 db
,这是因为 Laravel 应用实例需要连接到 db
服务中运行的 MySQL 数据库实例。
构建 Docker 镜像
在配置文件中定义了 Dockerfile 的路径和名称,需要在项目根目录下创建一个名为 Dockerfile
的文件,并添加以下内容:
// javascriptcn.com 代码示例 FROM php:7.4-apache RUN apt-get update && apt-get install -y \ libzip-dev \ libpng-dev \ libonig-dev \ libxml2-dev \ zip \ unzip \ curl \ git \ && docker-php-ext-install pdo_mysql \ && docker-php-ext-install zip \ && docker-php-ext-install gd \ && docker-php-ext-install mbstring \ && docker-php-ext-install exif \ && docker-php-ext-install pcntl \ && docker-php-ext-install bcmath \ && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer COPY . /var/www/html RUN chown -R www-data:www-data /var/www/html \ && chmod -R 755 /var/www/html \ && composer install --no-dev --optimize-autoloader RUN a2enmod rewrite
这个 Dockerfile 定义了基于 php:7.4-apache
镜像构建的镜像。然后安装了一些依赖包和扩展,包括 pdo_mysql
、zip
、gd
、mbstring
、exif
、pcntl
和 bcmath
。安装完成后,将应用程序的源代码复制到容器中,并使用 Composer 安装应用程序的依赖包。最后启用了 Apache 的 rewrite 模块。
在项目根目录下执行以下命令,可以构建 Docker 镜像:
docker-compose build
启动 Docker 容器
在项目根目录下执行以下命令,可以启动 Docker 容器:
docker-compose up -d
这个命令会启动 app
和 db
两个服务,并将它们放在后台运行。可以使用以下命令来查看容器的状态:
docker-compose ps
测试 Laravel 应用实例
在浏览器中访问 http://localhost
,应该可以看到 Laravel 应用实例的欢迎页面。如果无法访问,请检查容器的状态和配置是否正确。
总结
使用 Docker Compose 管理 Laravel 应用实例可以有效地简化部署过程,使得部署更加可重复和可扩展。通过本文的介绍,你已经学会了如何使用 Docker Compose 配置和管理 Laravel 应用实例。希望本文对你有所帮助。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6559b58ed2f5e1655d41e1d7