diff --git a/Dockerfile b/Dockerfile index 5648fe0..d2029a8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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/ diff --git a/README.md b/README.md index 8f13039..edb9d45 100644 --- a/README.md +++ b/README.md @@ -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 <> /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中 diff --git a/main.go b/main.go index 4c075f8..aabada3 100644 --- a/main.go +++ b/main.go @@ -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 { diff --git a/pkg/api/routes.go b/pkg/api/routes.go index 11b2512..71e907c 100644 --- a/pkg/api/routes.go +++ b/pkg/api/routes.go @@ -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, //) diff --git a/pkg/config/config.go b/pkg/config/config.go index 3a1b95d..789ab10 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -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) diff --git a/supervisord.conf b/supervisord.conf index ae6658f..eb5981e 100644 --- a/supervisord.conf +++ b/supervisord.conf @@ -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 \ No newline at end of file +; 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 \ No newline at end of file