将Laravel应用程序与Docker容器化部署是一个相对简单的过程。以下是一个基本的步骤指南,帮助你完成这个任务:
首先,确保你已经在你的开发机器上安装了Docker。你可以从Docker官方网站下载并安装适合你操作系统的Docker版本。
在你的Laravel项目根目录下创建一个名为Dockerfile
的文件,并添加以下内容:
# 使用官方的PHP镜像作为基础镜像
FROM php:7.4-fpm
# 设置工作目录
WORKDIR /var/www/html
# 复制当前目录下的所有文件到工作目录
COPY . /var/www/html
# 安装依赖
RUN apt-get update && apt-get install -y \
build-essential \
libpng-dev \
libjpeg62-turbo-dev \
libfreetype6-dev \
libwebp-dev \
libjpeg-dev \
libzip-dev \
libonig-dev \
zip \
curl \
unzip
# 清理缓存
RUN apt-get clean && rm -rf /var/lib/apt/lists/*
# 安装PHP扩展
RUN docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp
RUN docker-php-ext-install gd pdo_mysql zip exif pcntl
# 安装Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# 设置环境变量
ENV COMPOSER_HOME=/root/.composer
# 暴露端口
EXPOSE 80
# 启动PHP-FPM
CMD ["php-fpm"]
在你的Laravel项目根目录下创建一个名为docker-compose.yml
的文件,并添加以下内容:
version: '3.8'
services:
# Laravel应用服务
app:
build:
context: .
dockerfile: Dockerfile
image: laravel_app
container_name: laravel_app_container
restart: unless-stopped
tty: true
environment:
SERVICE_NAME: app
SERVICE_TAGS: dev
working_dir: /var/www/html
volumes:
- ./:/var/www/html
networks:
- laravel
# Nginx服务
nginx:
image: nginx:stable-alpine
container_name: nginx_container
restart: unless-stopped
tty: true
ports:
- "8000:80"
volumes:
- ./:/var/www/html
- ./nginx.conf:/etc/nginx/conf.d/default.conf
networks:
- laravel
# MySQL服务
mysql:
image: mysql:5.7-fpm
container_name: mysql_container
restart: unless-stopped
tty: true
environment:
MYSQL_DATABASE: laravel
MYSQL_USER: laravel
MYSQL_PASSWORD: secret
MYSQL_ROOT_PASSWORD: root
volumes:
- mysql_data:/var/lib/mysql
networks:
- laravel
volumes:
mysql_data:
networks:
laravel:
driver: bridge
在项目根目录下创建一个名为nginx.conf
的文件,并添加以下内容:
server {
listen 80;
server_name localhost:8000;
root /var/www/html/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass app:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
在项目根目录下打开终端,运行以下命令来构建和启动Docker容器:
docker-compose up -d --build
打开浏览器,访问http://localhost:8000
,你应该能够看到你的Laravel应用在Docker容器中运行。
如果你想停止并移除容器,可以运行以下命令:
docker-compose down
这样,你就完成了Laravel应用程序的Docker容器化部署。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。