使用Docker(docker-compose),创建Laravel环境
首先
最初制作的方面作为参考进一步展开。请参考此页(借鉴…)
備受重視
一旦下载完成后,您可以从运行命令中执行该项目,其位于https://github.com/naozo-se/Docker-Laravel。
用这样的方式来创建
・使用PHP7.4 / MySQL8 / Nginx1.19的映像創建
・以名稱sampleproject創建項目(如果需要更改名稱,請隨意替換)
・在Windows的Docker Desktop上進行確認
・也在Ubuntu上進行確認(Docker版本如下)
⇛ Docker version 20.10.1, build 831ebea
⇛ docker-compose version 1.26.0, build d4451659
文件夹结构
laravel
├ docker-compose.yml
├ docker
│ ├ php
│ │ ├ php.ini
│ │ └ Dockerfile
│ └ nginx
│ └ default.conf
└ server
各个文件的内容
version: '3'
services:
laravel_php:
container_name: laravel_php
build: ./docker/php
volumes:
- ./server:/var/www
laravel_nginx:
image: nginx:1.19
container_name: laravel_nginx
ports:
- 80:80
volumes:
- ./server:/var/www
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- laravel_php
laravel_db:
image: mysql:8.0
container_name: laravel_db
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: sampleproject
MYSQL_USER: dbuser
MYSQL_PASSWORD: dbpass
TZ: 'Asia/Tokyo'
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
volumes:
- ./docker/db/data:/var/lib/mysql
- ./docker/db/my.cnf:/etc/mysql/conf.d/my.cnf
- ./docker/db/sql:/docker-entrypoint-initdb.d
ports:
- 3306:3306
[Date]
date.timezone = "Asia/Tokyo"
[mbstring]
mbstring.internal_encoding = "UTF-8"
mbstring.language = "Japanese"
FROM php:7.4-fpm
COPY php.ini /usr/local/etc/php/
RUN apt-get update && apt-get -y upgrade
RUN apt-get install -y zlib1g-dev && apt-get install -y libzip-dev
RUN docker-php-ext-install pdo_mysql zip
COPY --from=composer /usr/bin/composer /usr/bin/composer
ENV COMPOSER_ALLOW_SUPERUSER 1
ENV COMPOSER_HOME /composer
ENV PATH $PATH:/composer/vendor/bin
WORKDIR /var/www
RUN composer global require "laravel/installer"
server {
index index.php index.html;
server_name localhost;
root /var/www/sampleproject/public;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass laravel_php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
执行命令 (shí
1.建立容器
docker-compose up -d
创建一个Laravel项目。
进入容器内
docker exec -ti laravel_php bash
创建版本6的命令(容器内部)
composer create-project "laravel/laravel=6.*" sampleproject
创建项目后(在容器内直接运行)
cd sampleproject
chmod -R 777 storage
chmod -R 777 bootstrap/cache
启动服务器
php artisan serve
只能在本地主机上进行连接。
与数据库相关
编辑.env文件(在项目文件夹中)
DB_CONNECTION=mysql
DB_HOST=laravel_db
DB_PORT=3306
DB_DATABASE=sampleproject
DB_USERNAME=dbuser
DB_PASSWORD=dbpass
在编写的compose.yml文件中作为参考
确认连接
php artisan migrate
修订历史
2021年1月25日
· 修改标题等内容
· 修改文件名和命令的错误
· 添加了在Ubuntu上的确认
2021年2月6日
· 添加了GitHub的链接