@gabe
2020-05-21T02:27:39.000000Z
字数 3333
阅读 1782
未分类
$ cd ~$ git clone https://github.com/laravel/laravel.git laravel-app
使用php composer 安装Laravle依赖,这里使用的是composer容器,
$ cd ~/laravel-app
先配置下镜像加速
$ docker run --rm -v $(pwd):/app composer config repo.packagist composer https://mirrors.aliyun.com/composer/
安装依赖
$ docker run --rm -v $(pwd):/app composer install -vvv
设置文件权限
sudo chown -R $USER:$USER ~/laravel-app
$ vim docker-compose.yml
内容:
version: '3'services:#PHP Serviceapp:build:context: .dockerfile: Dockerfileimage: digitalocean.com/phpcontainer_name: apprestart: unless-stoppedtty: trueenvironment:SERVICE_NAME: appSERVICE_TAGS: devworking_dir: /var/wwwvolumes:- ./:/var/www- ./php/local.ini:/usr/local/etc/php/conf.d/local.ininetworks:- app-network#Nginx Servicewebserver:image: nginx:alpinecontainer_name: webserverrestart: unless-stoppedtty: trueports:- "80:80"- "443:443"volumes:- ./:/var/www- ./nginx/conf.d/:/etc/nginx/conf.d/networks:- app-network#MySQL Servicedb:image: mysql:5.7.22container_name: dbrestart: unless-stoppedtty: trueports:- "3306:3306"environment:MYSQL_DATABASE: laravelMYSQL_ROOT_PASSWORD: your_mysql_root_passwordSERVICE_TAGS: devSERVICE_NAME: mysqlvolumes:- dbdata:/var/lib/mysql/- ./mysql/my.cnf:/etc/mysql/my.cnfnetworks:- app-network#Docker Networksnetworks:app-network:driver: bridge#Volumesvolumes:dbdata:driver: local
$ vim ~/laravel-app/Dockerfile
内容
FROM php:7.2-fpm# Copy composer.lock and composer.jsonCOPY composer.lock composer.json /var/www/# Set working directoryWORKDIR /var/www# Install dependenciesRUN apt-get update && apt-get install -y \build-essential \libpng-dev \libjpeg62-turbo-dev \libfreetype6-dev \locales \zip \jpegoptim optipng pngquant gifsicle \vim \unzip \git \curl# Clear cacheRUN apt-get clean && rm -rf /var/lib/apt/lists/*# Install extensionsRUN docker-php-ext-install pdo_mysql mbstring zip exif pcntlRUN docker-php-ext-configure gd --with-gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-png-dir=/usr/include/RUN docker-php-ext-install gd# Install composerRUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer# Add user for laravel applicationRUN groupadd -g 1000 wwwRUN useradd -u 1000 -ms /bin/bash -g www www# Copy existing application directory contentsCOPY . /var/www# Copy existing application directory permissionsCOPY --chown=www:www . /var/www# Change current user to wwwUSER www# Expose port 9000 and start php-fpm serverEXPOSE 9000CMD ["php-fpm"]
$ mkdir ~/laravel-app/php$ ~/laravel-app/php/local.ini
内容
upload_max_filesize=40Mpost_max_size=40M
$ mkdir -p ~/laravel-app/nginx/conf.d$ vim ~/laravel-app/nginx/conf.d/app.conf
内容
server {listen 80;index index.php index.html;error_log /var/log/nginx/error.log;access_log /var/log/nginx/access.log;root /var/www/public;location ~ \.php$ {try_files $uri =404;fastcgi_split_path_info ^(.+\.php)(/.+)$;fastcgi_pass app:9000;fastcgi_index index.php;include fastcgi_params;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_param PATH_INFO $fastcgi_path_info;}location / {try_files $uri $uri/ /index.php?$query_string;gzip_static on;}}
$ mkdir ~/laravel-app/mysql$ ~/laravel-app/mysql/my.cnf
内容
[mysqld]general_log = 1general_log_file = /var/lib/mysql/general.log
$ cp .env.example .env
.env内容
DB_CONNECTION=mysqlDB_HOST=dbDB_PORT=3306DB_DATABASE=laravelDB_USERNAME=laraveluserDB_PASSWORD=your_laravel_db_password
docker-compose up -d