官方给的docker搭建rocketchat的方式是docker-compose,之前一直觉得没必要学,这次只能被逼着学一学了。
另外官方给的compose.yaml文件是链接
curl -L https://raw.githubusercontent.com/RocketChat/Rocket.Chat/develop/docker-compose.yml -o docker-compose.yml
打开可以发现它是默认用的traefik进行反代,而且里面的容器并没设置固定IP,这样就没法用nginx简单反代了,google搜了一圈也没看到哪个的设置文件能直接拿来用的,只能去看官方文档。终于找到了写法格式,记下来防止忘记。
Part 1 安装docker compose
官方脚本安装docker-compose:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Part 2 docker compose 配置文件
docker-compose内容器配置添加固定ip如下设置
version: "2"
services:
example rocketchat:
image: rocket.chat:latest
volumes:
- ./uploads:/app/uploads
user: "1000"
depends_on:
- mongo
networks:
net1:
ipv4_address: 172.20.0.10
ports:
- 3000:3000
example mongo:
image: mongo:4.0
restart: unless-stopped
user: "1000"
networks:
net1:
ipv4_address: 172.20.0.11
networks:
net1:
external: true
上面配置文件中的net1为已经设置好的自定义网络,docker-compose启动后不会重新生成新的网络。其中user: "1000"为使用特定用户启动容器,这里的1000对应我的www用户。
查看用户名为www信息命令如下:
cat /etc/passwd | grep www
到这里,就可以把编写好的compose.yaml放在需要的目录下
docker-compose up -d
即可运行。