mac docker php mysql_Docker下配置PHP&MySQL&laravel开发环境(for Mac)

本文介绍了如何在Mac环境下利用Docker安装Laravel框架,配置PHP、MySQL服务,并创建相应的Dockerfile和nginx配置文件,以搭建完整的Laravel开发环境。通过docker-compose命令构建和启动服务。
摘要由CSDN通过智能技术生成

安装Docker&compose

省略

1, 下载Laravel框架到,安装依赖

下载Laravel项目到'myapp'文件夹并进入。

git clone https://github.com/laravel/laravel.git myapp/

cd myapp/

运行命令安装依赖

docker run --rm -v $(pwd):/app composer install

sudo chown -R $USER:$USER ~/myapp

2, 定义Laravel服务信息

version: '3'

services:

#Laravel App

app:

build:

context: .

dockerfile: Dockerfile

image: hakase-labs/laravel

container_name: app

restart: unless-stopped

tty: true

environment:

SERVICE_NAME: app

SERVICE_TAGS: dev

working_dir: /var/www/html

volumes:

- ./:/var/www/html

networks:

- mynet

#Nginx Service

nginx:

image: nginx:alpine

container_name: nginx

restart: unless-stopped

tty: true

ports:

- "80:80"

- "443:443"

volumes:

- ./:/var/www/html

- ./nginx/conf.d/:/etc/nginx/conf.d/

- ./nginx/ssl/:/etc/nginx/ssl/

networks:

- mynet

#MySQL Service

db:

image: mysql:5.7

container_name: db

restart: unless-stopped

tty: true

ports:

- "3306:3306"

environment:

MYSQL_DATABASE: laraveldb

MYSQL_USER: laravel

MYSQL_PASSWORD: laravelpassworddb

MYSQL_ROOT_PASSWORD: rootpasswordmysql

volumes:

- mysqldata:/var/lib/mysql/

networks:

- mynet

#Docker Networks

networks:

mynet:

driver: bridge

#Volumes

volumes:

mysqldata:

driver: local

3, 创建nginx配置文件

server {

listen 80;

server_name laravel.hakase-labs.io;

return 301 https://laravel.hakase-labs.io$request_uri;

}

server {

listen 443 ssl http2;

server_name laravel.hakase-labs.io;

ssl_certificate /etc/nginx/ssl/fullchain.pem;

ssl_certificate_key /etc/nginx/ssl/privkey.pem;

# Log files for Debug

error_log /var/log/nginx/error.log;

access_log /var/log/nginx/access.log;

# Laravel web root directory

root /var/www/html/public;

index index.php index.html;

location / {

try_files $uri $uri/ /index.php?$query_string;

gzip_static on;

}

# Nginx Pass requests to PHP-FPM

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;

}

}

复制ssl证书

sudo cp /path/to/ssl/fullchain.pem nginx/ssl/

sudo cp /path/to/ssl/privkey.pem nginx/ssl/

4, 创建Laravel app的Dockerfile

# Set master image

FROM php:7.2-fpm-alpine

# Copy composer.lock and composer.json

COPY composer.lock composer.json /var/www/html/

# Set working directory

WORKDIR /var/www/html

# Install Additional dependencies

RUN apk update && apk add --no-cache \

build-base shadow vim curl \

php7 \

php7-fpm \

php7-common \

php7-pdo \

php7-pdo_mysql \

php7-mysqli \

php7-mcrypt \

php7-mbstring \

php7-xml \

php7-openssl \

php7-json \

php7-phar \

php7-zip \

php7-gd \

php7-dom \

php7-session \

php7-zlib

# Add and Enable PHP-PDO Extenstions

RUN docker-php-ext-install pdo pdo_mysql

RUN docker-php-ext-enable pdo_mysql

# Install PHP Composer

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

# Remove Cache

RUN rm -rf /var/cache/apk/*

# Add UID '1000' to www-data

RUN usermod -u 1000 www-data

# Copy existing application directory permissions

COPY --chown=www-data:www-data . /var/www/html

# Change current user to www

USER www-data

# Expose port 9000 and start php-fpm server

EXPOSE 9000

CMD ["php-fpm"]

4, 构建Laravel

build

docker-compose build

run

docker-compose up -d

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值