说明
使用的主机提供商是腾讯云
使用部署 L05 电商教程项目作为例子
域名自备,除了主域名A解析,再添加一条CNAME泛域名解析
主机上已安装好docker和docker-compose
以下操作,docker-compose配置文件的路径为/home/ubuntu/docker
进入容器的方式,可以用docker-compose exec {service_name}(需在docker-compose.yml所在目录下操作),也可以在任意目录运行:docker exec -it {container_name} bash(nginx容器的话,bash换为sh)
为了记录的连贯性,将这个过程中遇到的问题放到文章最后,遇到的时候再去查阅。
docker-compose 环境搭建
docker-compose 环境搭建参考我之前写的文章:博客:docker-compose 搭建 dnmp 总结(附踩坑指南)
运行以下命令下载 docker-compose 配置:
git clone https://github.com/HubQin/dnmp.git docker
几点说明:
由于需要用到 npm 安装和编译前端资源,所以把它内置到php-fpm服务所在的容器里,安装前注意将dockerfiles/Dockerfile.php73文件中Node安装部分指令注释去掉
docker-compose.yml文件中,mysql部分,数据库管理员密码改为自己需要的密码
Redis配置文件(/home/ubuntu/docker/conf/redis/redis.conf)设置注释掉绑定ip的指令,比如注释掉:bind 127.0.0.1,另外,需要给redis设置密码,在配置文件中修改:requirepass=xxxxxx(你的redis密码)
php-fpm 容器还内置的 supervisor 进程监护工具
以上修改完成,在/home/ubuntu/docker目录下运行以下命令启动各项服务:docker-compose up -d
用到的服务容器明细如下:
php-fpm 7.3
mysql 最新版本(当前是8.0.18)
redis 最新版本(当前是 5.0.7)
Nginx 最新版本(当前是 1.17.6)
Laravel项目安装和配置
服务启动后,会在docker-compose.yml的上一级创建一个名为project的文件夹(在本例子中的完整路径是/home/ubuntu/docker),将Laravel项目的代码放在这里。
代码下载之后,复制一份项目根目录下的.env.example文件,命名为.env并做如下修改:
APP_NAME=Larashop #
APP_ENV=production #
APP_KEY=base64:oTbcE5B35aiLYtMvxdsaDzplwBYTa5DHX4IfeQ06bws= #
APP_DEBUG=false #
APP_URL=larashop.ishare.cool #
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=mysql #
DB_PORT=3306
DB_DATABASE=laravel-shop #
DB_USERNAME=root
DB_PASSWORD=xxxxxx #
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=redis #
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=redis #
REDIS_PASSWORD=xxxxxx #
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=smtp.qq.com
MAIL_PORT=465
MAIL_USERNAME=xxxxxx@qq.com #
MAIL_PASSWORD=xxxxxx #
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=xxxxxx@qq.com #
MAIL_FROM_NAME=Larashop #
运行docker exec -it docker_mysql_1 bash进入 mysql 所在容器,登录mysql创建一个数据库。
运行docker