修改使用读取配置文件的方式初始化数据库

This commit is contained in:
dushixiang
2020-12-25 21:43:38 +08:00
parent b079b7affe
commit 0d3e9c4cc7
6 changed files with 36 additions and 20 deletions

View File

@ -8,7 +8,7 @@ WORKDIR /app
COPY . .
RUN go env && CGO_ENABLED=0 go build -o nt main.go
RUN go env && CGO_ENABLED=0 go build -o next-terminal main.go
FROM guacamole/guacd:1.2.0
@ -25,10 +25,9 @@ ENV MYSQL_PASSWORD mysql
ENV MYSQL_DATABASE next_terminal
ENV SERVER_PORT 8088
WORKDIR /usr/local/nt
WORKDIR /usr/local/next-terminal
COPY --from=builder /app/nt ./
COPY --from=builder /app/config.yml ./
COPY --from=builder /app/next-terminal ./
COPY --from=builder /app/web/build ./web/build
COPY --from=builder /app/web/src/fonts/Menlo-Regular-1.ttf /usr/share/fonts/

View File

@ -14,14 +14,31 @@ Next Terminal基于Apache Guacamole开发使用到了guacd服务。
因为程序依赖了mysql所以在启动时需要指定mysql的连接信息。
```shell
docker run -p 8088:8088 --env MYSQL_HOSTNAME=d-mysql-57 --env MYSQL_USERNAME=root --env MYSQL_PASSWORD=root --name next-terminal --link d-mysql-57 dushixiang/next-terminal:0.0.1
mkdir /etc/next-terminal
cat <<EOF >> /etc/next-terminal/config.yaml
mysql:
hostname: 172.17.0.1
port: 3306
username: root
password: root
database: next_terminal
server:
addr: 0.0.0.0:8088
EOF
```
```shell
docker run -d \
-p 8088:8088 \
-v /etc/next-terminal/config.yaml:/etc/next-terminal/config.yaml \
--name next-terminal \
--restart always dushixiang/next-terminal:0.0.1
```
程序安装目录地址为 `/usr/local/nt`
程序安装目录地址为 `/usr/local/next-terminal`
录屏文件存放目录为 `/usr/local/nt/recording`
录屏文件存放目录为 `/usr/local/next-terminal/recording`
远程桌面挂载目录为 `/usr/local/nt/drive`
远程桌面挂载目录为 `/usr/local/next-terminal/drive`
可以通过 `-v` 参数将宿主机器的目录映射到docker中

View File

@ -36,7 +36,7 @@ func Run() error {
Logger: logger.Default.LogMode(logger.Info),
})
if err != nil {
log.Fatal("连接数据库异常", err)
return err
}
if err := global.DB.AutoMigrate(&model.User{}); err != nil {

View File

@ -23,7 +23,7 @@ func SetupRoutes() *echo.Echo {
e.Use(middleware.Logger())
//fd, _ := os.OpenFile(
// "nt.log",
// "next-terminal.log",
// os.O_RDWR|os.O_APPEND,
// 0666,
//)

View File

@ -27,16 +27,16 @@ func SetupConfig() *Config {
viper.SetConfigName("config")
viper.SetConfigType("yaml")
viper.AddConfigPath("/etc/nt/")
viper.AddConfigPath("$HOME/.nt")
viper.AddConfigPath("/etc/next-terminal/")
viper.AddConfigPath("$HOME/.next-terminal")
viper.AddConfigPath(".")
pflag.String("mysql.hostname", "127.0.0.1", "mysql hostname")
pflag.Int("mysql.port", 3306, "mysql port")
pflag.String("mysql.username", "mysql", "mysql username")
pflag.String("mysql.password", "mysql", "mysql password")
pflag.String("mysql.database", "next_terminal", "mysql database")
pflag.String("server.addr", "0.0.0.0:8088", "server listen addr")
//pflag.String("mysql.hostname", "127.0.0.1", "mysql hostname")
//pflag.Int("mysql.port", 3306, "mysql port")
//pflag.String("mysql.username", "mysql", "mysql username")
//pflag.String("mysql.password", "mysql", "mysql password")
//pflag.String("mysql.database", "next_terminal", "mysql database")
//pflag.String("server.addr", "0.0.0.0:8088", "server listen addr")
pflag.Parse()
_ = viper.BindPFlags(pflag.CommandLine)

View File

@ -4,5 +4,5 @@ nodaemon=true
command=/usr/local/guacamole/sbin/guacd -b 0.0.0.0 -L info -f
[program:next-terminal]
; command=/usr/local/nt/nt --mysql.hostname $MYSQL_HOSTNAME --mysql.port $MYSQL_PORT --mysql.username $MYSQL_USERNAME --mysql.password $MYSQL_PASSWORD --mysql.database $MYSQL_DATABASE --server.addr 0.0.0.0:$SERVER_PORT
command=/usr/local/nt/nt --mysql.hostname %(ENV_MYSQL_HOSTNAME)s --mysql.port %(ENV_MYSQL_PORT)s --mysql.username %(ENV_MYSQL_USERNAME)s --mysql.password %(ENV_MYSQL_PASSWORD)s --mysql.database %(ENV_MYSQL_DATABASE)s --server.addr 0.0.0.0:%(ENV_SERVER_PORT)s
; command=/usr/local/next-terminal/next-terminal --mysql.hostname %(ENV_MYSQL_HOSTNAME)s --mysql.port %(ENV_MYSQL_PORT)s --mysql.username %(ENV_MYSQL_USERNAME)s --mysql.password %(ENV_MYSQL_PASSWORD)s --mysql.database %(ENV_MYSQL_DATABASE)s --server.addr 0.0.0.0:%(ENV_SERVER_PORT)s
command=/usr/local/next-terminal/next-terminal