Docker 搭建laravel环境
将php、apache、composer打包为一个镜像
- Dockerfile文件
FROM php:7.4-apache LABEL name="bianca.lk.alex@outlook.com" RUN apt-get update && \ apt-get install -y curl \ git \ zip \ wget \ vim &&\ docker-php-ext-install pdo pdo_mysql bcmath RUN curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/5.3.3.tar.gz && \ tar xfz /tmp/redis.tar.gz && \ rm -r /tmp/redis.tar.gz && \ mkdir -p /usr/src/php/ext && \ mv phpredis-5.3.3 /usr/src/php/ext/redis && \ docker-php-ext-install redis RUN curl -sS https://getcomposer.org/installer | php \ && mv composer.phar /usr/local/bin/composer \ && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer RUN chown -R www-data:www-data /var/www/html && a2enmod rewrite
- 构建镜像
docker build -t php-apache .
自定义网络
- 采用自定义的网络,使用此网络的容器网络互通
docker network create --subnet 172.20.0.0/24 --gateway 172.20.0.1 mynet
mysql、redis、node
- 单独构建 mysql redis node
# mysql docker run -itd -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name mysql --net mynet -v /var/mysql/data/:/var/lib/mysql mysql:5.7 # redis docker run -p 6379:6379 -d --name redis --net mynet redis redis-server # node docker run -itd --name node -v /var/html/:/html --net mynet node
php-apache与laravel
- 启动php-apache容器
docker run -d -p 80:80 --name php-apache -v /var/html/:/var/www/html --net mynet php-apache
- 下载laravel
docker exec -it php-apache /bin/bash root@07b61ff870a4:/var/www/html# composer create-project laravel/laravel --prefer-dist blog .
- 权限问题
chown -R www-data:www-data /var/www/html/blog/storage/ chown -R www-data:www-data /var/www/html/blog/bootstrap/
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: