n9e部署(不含存储)
安装Docker和Docker-Compose
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
sed -i 's#download.docker.com#mirrors.ustc.edu.cn/docker-ce#g' /etc/yum.repos.d/docker-ce.repo
yum install docker-ce -y
systemctl enable docker
systemctl start docker
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
使用Docker-Compose安装n9e
mkdir -p /home/n9e/install
cd /home/n9e/install
wget https://github.com/ccfos/nightingale/releases/download/v7.3.4/n9e-v7.3.4-linux-amd64.tar.gz
tar xf n9e-v7.3.4-linux-amd64.tar.gz
cd /home/n9e/install/docker/compose-bridge
cp docker-compose.yaml docker-compose.yaml.bak
cat > docker-compose.yaml <<\EOF
version: "3.7"
networks:
nightingale:
driver: bridge
services:
mysql:
image: "mysql:8"
container_name: n9e-mysql
hostname: n9e-mysql
restart: always
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 1234
volumes:
- ./mysqldata:/var/lib/mysql/
- ../initsql:/docker-entrypoint-initdb.d/
- ./etc-mysql/my.cnf:/etc/my.cnf
networks:
- nightingale
ports:
- "3306:3306"
deploy:
resources:
limits:
cpus: '2'
memory: 2048M
reservations:
memory: 256M
redis:
image: "redis:6.2"
container_name: n9e-redis
hostname: n9e-redis
restart: always
environment:
TZ: Asia/Shanghai
networks:
- nightingale
ports:
- "6379:6379"
deploy:
resources:
limits:
cpus: '1'
memory: 1024M
reservations:
memory: 256M
nightingale:
image: "nightingale:7.4.0"
container_name: n9e-nightingale
hostname: n9e-nightingale
restart: always
environment:
GIN_MODE: release
TZ: Asia/Shanghai
WAIT_HOSTS: mysql:3306, redis:6379
volumes:
- ./etc-nightingale:/app/etc
networks:
- nightingale
ports:
- "10700:17000"
- "20090:20090"
depends_on:
- mysql
- redis
command: >
sh -c "/app/n9e"
deploy:
resources:
limits:
cpus: '4'
memory: 8G
reservations:
memory: 4096M
EOF
docker-compose up -d
检查
- 访问:http://host:10900,默认用户是
root
,密码是 root.2020
- 启动成功之后,把 initsql 目录下的内容挪走,这样下次重启的时候,DB 就不会重新初始化了。否则下次启动 mysql 还是会自动执行 initsql 下面的 sql 文件导致 DB 重新初始化,页面上创建的规则、大盘等都会丢失。Docker Compose 这种部署方式,只是用于简单测试,不推荐在生产环境使用。
docker-compose ps
mv /home/n9e/install/docker/initsql /home/n9e/install/docker/initsql-bak