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

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 . . 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 FROM guacamole/guacd:1.2.0
@ -25,10 +25,9 @@ ENV MYSQL_PASSWORD mysql
ENV MYSQL_DATABASE next_terminal ENV MYSQL_DATABASE next_terminal
ENV SERVER_PORT 8088 ENV SERVER_PORT 8088
WORKDIR /usr/local/nt WORKDIR /usr/local/next-terminal
COPY --from=builder /app/nt ./ COPY --from=builder /app/next-terminal ./
COPY --from=builder /app/config.yml ./
COPY --from=builder /app/web/build ./web/build COPY --from=builder /app/web/build ./web/build
COPY --from=builder /app/web/src/fonts/Menlo-Regular-1.ttf /usr/share/fonts/ 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的连接信息。 因为程序依赖了mysql所以在启动时需要指定mysql的连接信息。
```shell ```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中 可以通过 `-v` 参数将宿主机器的目录映射到docker中

View File

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

View File

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

View File

@ -27,16 +27,16 @@ func SetupConfig() *Config {
viper.SetConfigName("config") viper.SetConfigName("config")
viper.SetConfigType("yaml") viper.SetConfigType("yaml")
viper.AddConfigPath("/etc/nt/") viper.AddConfigPath("/etc/next-terminal/")
viper.AddConfigPath("$HOME/.nt") viper.AddConfigPath("$HOME/.next-terminal")
viper.AddConfigPath(".") viper.AddConfigPath(".")
pflag.String("mysql.hostname", "127.0.0.1", "mysql hostname") //pflag.String("mysql.hostname", "127.0.0.1", "mysql hostname")
pflag.Int("mysql.port", 3306, "mysql port") //pflag.Int("mysql.port", 3306, "mysql port")
pflag.String("mysql.username", "mysql", "mysql username") //pflag.String("mysql.username", "mysql", "mysql username")
pflag.String("mysql.password", "mysql", "mysql password") //pflag.String("mysql.password", "mysql", "mysql password")
pflag.String("mysql.database", "next_terminal", "mysql database") //pflag.String("mysql.database", "next_terminal", "mysql database")
pflag.String("server.addr", "0.0.0.0:8088", "server listen addr") //pflag.String("server.addr", "0.0.0.0:8088", "server listen addr")
pflag.Parse() pflag.Parse()
_ = viper.BindPFlags(pflag.CommandLine) _ = 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 command=/usr/local/guacamole/sbin/guacd -b 0.0.0.0 -L info -f
[program:next-terminal] [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/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/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