You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
iot/projects/docker-compose.yml

177 lines
4.6 KiB

version: "3.4"
services:
#网站
website:
image: nginx:1.18.0
restart: always
environment:
TZ: "Asia/Shanghai"
ports:
- 80:80
- 443:443
volumes:
- ./docker/conf/website/nginx.conf:/etc/nginx/nginx.conf
- ./docker/conf/website/edusoa.pem:/etc/nginx/edusoa.pem
- ./docker/conf/website/edusoa.key:/etc/nginx/edusoa.key
- ./docker/log/website:/var/log/nginx
- ./WebMVC/wwwroot:/root/nginx/html/desktop
- ./WebSPA/wwwroot:/root/nginx/html/mobile
#网关
gateway:
image: nginx:1.18.0
restart: always
environment:
TZ: "Asia/Shanghai"
ports:
- 8000:80
volumes:
- ./docker/conf/gateway/nginx.conf:/etc/nginx/nginx.conf
- ./docker/log/gateway:/var/log/nginx
#文件存储
minio:
image: minio/minio:RELEASE.2020-08-08T04-50-06Z
restart: always
environment:
MINIO_ACCESS_KEY: "admin"
MINIO_SECRET_KEY: "12345678"
command: server /data
ports:
- 9000:9000
volumes:
- ./docker/data/minio:/data
#关系数据库
mysql:
image: mysql:8.0.21
restart: always
environment:
- MYSQL_ROOT_PASSWORD=aA123456!
- MYSQL_DATABASE=jobserver
command: --default-authentication-plugin=mysql_native_password
ports:
- 3306:3306
volumes:
- ./docker/conf/mysql/my.cnf:/etc/my.cnf
- ./docker/data/mysql:/var/lib/mysql
healthcheck:
test: mysqladmin ping -h localhost -u $$MYSQL_USER --password=$$MYSQL_PASSWORD
timeout: 10s
retries: 30
#缓存
redis:
image: redis:6.0.6
restart: always
ports:
- 6379:6379
volumes:
- ./docker/data/redis:/data
- ./docker/conf/redis/redis.conf:/usr/local/etc/redis/redis.conf
command: redis-server /usr/local/etc/redis/redis.conf
#时序数据库
influxdb:
image: influxdb:1.8.1
restart: always
environment:
TZ: "Asia/Shanghai"
INFLUXDB_ADMIN_ENABLED: "true"
INFLUXDB_ADMIN_USER: admin
INFLUXDB_ADMIN_PASSWORD: admin
ports:
- 8086:8086
- 8088:8088
volumes:
- ./docker/data/influxdb:/var/lib/influxdb
#流媒体服务器
srs:
image: ubuntu
environment:
TZ: "Asia/Shanghai"
restart: always
ports:
- 1935:1935
- 8080:8080
- 1985:1985
working_dir: /usr/local/srs
command: bash -c "chmod +x ./objs/srs && ./objs/srs -c ./conf/srs.conf"
volumes:
- ./srs:/usr/local/srs
#物联网
iotcenter:
image: ${DOCKER_REGISTRY-}iotcenter
build:
context: .
dockerfile: IoTCenter/Dockerfile
depends_on:
- minio
- mysql
- redis
- influxdb
- srs
#docker管理
portainer:
image: portainer/portainer:1.24.1
restart: always
ports:
- 9002:9000
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./docker/data/portainer:/data
#服务器监控
netdata:
image: netdata/netdata:latest-amd64
hostname: localhost
ports:
- 9999:19999
cap_add:
- SYS_PTRACE
security_opt:
- apparmor:unconfined
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
#mysql web 管理
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
restart: always
environment:
- PMA_HOST=mysql
- PMA_PORT=3306
ports:
- 9003:80
#redis web 管理
phpredisadmin:
image: erikdubbelboer/phpredisadmin
restart: always
environment:
- REDIS_1_HOST=redis
- REDIS_1_PORT=6379
- ADMIN_USER=admin
- ADMIN_PASS=123456
ports:
- 9004:80
#influxdb web 工具
influxdb-web:
image: influxdb:1.2.4
restart: always
environment:
TZ: "Asia/Shanghai"
INFLUXDB_ADMIN_ENABLED: "true"
INFLUXDB_ADMIN_USER: admin
INFLUXDB_ADMIN_PASSWORD: admin
ports:
- 8083:8083