-
Notifications
You must be signed in to change notification settings - Fork 127
容器化方式部署
Docker环境对于ignite服务来说是不可或缺的,ignite需要使用Docker来创建用户的容器服务,同样,你也可以通过Docker来部署ignite服务,达到一切皆容器的效果。相较于手动方式部署,容器化方式部署更加方便快捷,也减少出错的可能。
部署需要使用docker-compose工具,如果你对它不了解,请先学习如何使用它,后续对docker-compose的使用细节不做赘述。如果还没有在服务器上安装docker-compose,请参考docker-compose快速安装文档。
以下贴出的docker-compose配置已经提交到ignite-docker仓库下。
通过创建docker-compose.yml,直接进行部署:
version: '3'
services:
ignite:
container_name: ignite
image: goignite/ignite
volumes:
- "./data:/root/ignite/data"
- "/var/run/docker.sock:/var/run/docker.sock"
environment:
- HOST_ADDRESS=server-ip-address
ports:
- "5000:5000"
restart: always
ignite-admin:
container_name: ignite-admin
image: goignite/ignite-admin
volumes:
- "./data:/root/ignite/data"
- "/var/run/docker.sock:/var/run/docker.sock"
environment:
- AUTH_USERNAME=admin
- AUTH_PASSWORD=admin_password
- Auth_SECRET=ignite2017
ports:
- "8000:8000"
restart: always
通过运行docker-compose up -d
,即可启动ignite和ignite-admin服务,数据保存在docker-compose.yml文件同级的data目录下,你可以修改挂载的存储目录,但注意,要修改两处,确保挂载到ignite和ignite-admin容器中的是同一个目录。
默认情况下,ignite用来创建容器服务可以使用主机上端口范围为[5001,6000]的未使用端口,管理后台的用户为admin
,密码123
。你可以通过设置environment来覆盖。
例如,以上模板中,你需要替换AUTH_USERNAME,AUTH_PASSWORD为你的管理后台用户名和密码,并将HOST_ADDRESS修改为你的服务器公网IP或者域名。
默认情况下,ignite使用sqlite作数据存储,也支持配置使用MySQL数据库作为存储后端。
environment:
- DB_DRIVER=${DB_DRIVER}
- DB_CONNECT=${DB_CONNECT}
需要注意,需要将上诉环境配置加到ignite和ignite-admin两个服务的定义中,确保它们连接的是同一个数据库。在与docker-compose.yml文件同级的目录中,创建.env文件,设置DB_DRIVER
和DB_CONNECT
变量即可。
如果你并没有现成的MySQL服务,这里提供一种简单的容器化MySQL服务的方式。增加mysql服务定义:
mysql:
container_name: mysql
image: mysql:5.7
volumes:
- "./mysql/data:/var/lib/mysql"
- "./mysql/conf:/etc/mysql/conf.d"
restart: always
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ignite
这里将数据目录挂载到与docker-compose.yml
文件同级的mysql/data
目录下,用自定义的配置文件(修改字符集为UTF-8)覆盖容器内的配置文件。
修改.env文件为:
MYSQL_ROOT_PASSWORD=set-root-password
DB_DRIVER=mysql
DB_CONNECT=root:set-root-password@tcp(mysql:3306)/ignite?parseTime=true
通过设置容器的environment来覆盖默认的配置项,这里列举可以配置的环境变量。
- ignite
-
DB_DRIVER -- 数据库驱动,sqlite3/mysql,默认
sqlite3
-
DB_CONNECT -- 数据库连接字符串,默认
./data/ignite.db
-
HOST_ADDRESS -- 展示在用户界面上的SS的连接IP,默认
localhost
-
HOST_FROM -- 创建SS容器的起始可用端口范围,默认
5001
-
HOST_TO -- 创建SS容器的截止可用端口范围,默认
6000
-
DB_DRIVER -- 数据库驱动,sqlite3/mysql,默认
- ignite-admin
-
DB_DRIVER -- 数据库驱动,sqlite3/mysql,默认
sqlite3
-
DB_CONNECT -- 数据库连接字符串,默认
../ignite/data/ignite.db
-
AUTH_USERNAME -- 管理用户名,默认
admin
-
AUTH_PASSWORD -- 管理密码,默认
123
-
AUTH_SECRET -- 生成JWT Token的秘钥,默认
123
-
DB_DRIVER -- 数据库驱动,sqlite3/mysql,默认
如无特殊说明,标签为latest
的镜像是我们提供的兼容旧版本的最新版本镜像,你可以放心升级,步骤也相当简单,你只需要在docker-compose.yml
文件的同级目录下执行以下命令即可完成升级。
docker-compose down
docker-compose pull
docker-compose up -d