使用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的链接

广告
将在 10 秒后关闭
bannerAds