version: "3"
# 这里用官方php镜像, 数据库改mysql而不是mariadb
# goodluck 大坑
# 1, 一个是证书key, 我做了软连接,ng怎么也加载不到文件
# 2, 一个是 file not find , ng报错
# FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 47.57.241.107, server: api.bbdrone.com, request
# 在配置文件里改 绝对路径就好了 fastcgi_param SCRIPT_FILENAME $root$fastcgi_script_name;
services:
nginx:
image: nginx
volumes:
- ./home/nginx/local:/etc/nginx/conf.d
- ./home:/home
- ./www:/www
networks:
- lnmp
expose:
- "80"
- "443"
- "8111"
- "8112"
- "8113"
ports:
- "8110:80"
- "8111:8111"
- "8112:8112"
- "8113:8113"
- "444:443"
user: root
privileged: true
depends_on:
- php
environment:
- TZ=Asia/Shanghai
# 1, php需要自己安装扩展, 得进入容器, 这个直接 command 没有成功
# docker exec -it bf88a8de16a5 /bin/bash
# mysql扩展
# docker-php-ext-install pdo_mysql
# 2, gd 库就更复杂, 注意先配置,再安装才能生效,先1,后2
# 容器中
# apt update #更新软件源
# apt install libwebp-dev libfreetype6-dev libmcrypt-dev libpng-dev libjpeg-dev libpng-dev sendmail zlib1g-dev #安装各种库
# (1)docker-php-ext-configure gd --with-webp=/usr/include/webp --with-jpeg=/usr/include --with-freetype=/usr/include/freetype2
# (2)docker-php-ext-install gd #编译安装
# php -m | grep gd
# 这块有个坑 7.4 --with后参数变了 phpinfo打印gd,
# 下面这样重新配置才可以 这样配置后 freetype 才安装成功, tp6验证码才可用
# docker-php-ext-configure gd --with-webp=/usr/include/webp --with-jpeg=/usr/include --with-freetype=/usr/include/freetype2
# 3, redis 扩展安装
# pecl install redis-4.0.1 && docker-php-ext-enable redis
# 提示输入后,输入no
# 4, mongodb
# pecl install mongodb
# extension=”mongodb.so”
# 5, 安装 ps
# apt-get install procps
# 6, 安装crontab
# apt-get install cron
# 7, 安装守护进程
# apt-get install supervisor
php:
image: php:7.3-fpm
volumes:
- ./www:/www
- ./home:/home
networks:
- lnmp
user: root
privileged: true
depends_on:
- mysql
expose:
- "9000"
- "9001"
ports:
- "9001:9001"
environment:
- TZ=Asia/Shanghai
mysql:
image: mysql:5.6
volumes:
- ./data/mysql:/var/lib/mysql
networks:
- lnmp
expose:
- "3306"
ports:
- "3004:3306"
environment:
- TZ=Asia/Shanghai
- "MYSQL_DATABASE=mybole"
- "MYSQL_USER=admin"
- "MYSQL_PASSWORD=admin123456"
- "MYSQL_ROOT_PASSWORD=gly123456"
redis:
command: redis-server --requirepass dfdAde5L[9YasfafoNI(4aegdfdfdwda
image: redis
volumes:
- ./data/redis:/data
networks:
- lnmp
expose:
- "6379"
ports:
- "6002:6379"
# mongo服务
mongo:
image: mongo:4
container_name: mongo
privileged: true
networks: [lnmp]
expose: [27017]
ports: ['27017:27017']
volumes: [ './data/mongo:/data/db']
restart: always
elasticsearch:
image: elasticsearch:7.8.0
environment:
- discovery.type=single-node
- ES_JAVA_OPTS=-Xms512m -Xmx512m
volumes:
- ./data/elasticsearch/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ./data/elasticsearch/data:/usr/share/elasticsearch/data
- ./data/elasticsearch/log:/usr/share/elasticsearch/log
networks:
- lnmp
expose:
- "9200"
ports:
- "9200:9200"
networks:
lnmp:
网友评论