add docker
This commit is contained in:
parent
1fba5c61cc
commit
eaa1a7fed2
23
Dockerfile
Normal file
23
Dockerfile
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
FROM golang:alpine as builder
|
||||||
|
|
||||||
|
RUN apk add --no-cache \
|
||||||
|
git
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
ARG COMMIT=latest
|
||||||
|
|
||||||
|
RUN GOBIN=/app go install git.siteop.biz/shoopea/gottdad@$COMMIT
|
||||||
|
|
||||||
|
FROM alpine:latest
|
||||||
|
|
||||||
|
RUN apk add --no-cache \
|
||||||
|
libstdc++
|
||||||
|
|
||||||
|
WORKDIR /app/
|
||||||
|
|
||||||
|
# Copy the Pre-built binary file from the previous stage
|
||||||
|
COPY --from=builder /app/gotdadd .
|
||||||
|
|
||||||
|
# Command to run the executable
|
||||||
|
CMD ["./gotdadd"]
|
@ -66,7 +66,7 @@ func (c *Config) Load(path string) error {
|
|||||||
|
|
||||||
b, err := ioutil.ReadFile(path)
|
b, err := ioutil.ReadFile(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return c.Save(path)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = json.Unmarshal(b, &c)
|
err = json.Unmarshal(b, &c)
|
||||||
@ -74,7 +74,7 @@ func (c *Config) Load(path string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return c.Save(path)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Save config values to a given file
|
// Save config values to a given file
|
||||||
|
1
go.mod
1
go.mod
@ -3,6 +3,7 @@ module git.siteop.biz/shoopea/gottdad
|
|||||||
go 1.16
|
go 1.16
|
||||||
|
|
||||||
require (
|
require (
|
||||||
|
github.com/ianschenck/envflag v0.0.0-20140720210342-9111d830d133
|
||||||
github.com/tidwall/pretty v1.2.0
|
github.com/tidwall/pretty v1.2.0
|
||||||
gopkg.in/tucnak/telebot.v2 v2.4.0
|
gopkg.in/tucnak/telebot.v2 v2.4.0
|
||||||
)
|
)
|
||||||
|
2
go.sum
2
go.sum
@ -1,5 +1,7 @@
|
|||||||
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
|
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
|
||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
github.com/ianschenck/envflag v0.0.0-20140720210342-9111d830d133 h1:h6FO/Da7rdYqJbRYMW9f+SMBWnJVguWh+0ERefW8zp8=
|
||||||
|
github.com/ianschenck/envflag v0.0.0-20140720210342-9111d830d133/go.mod h1:pyYc5lldRtL0l5YitYVv1dLKuC0qhMfAfiR7BLsN2pA=
|
||||||
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
|
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
|
||||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
|
22
main.go
22
main.go
@ -5,15 +5,20 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
_ "embed"
|
_ "embed"
|
||||||
|
|
||||||
|
"github.com/ianschenck/envflag"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
cfg *Config
|
cfg *Config
|
||||||
srv *ServerTTD
|
srv *ServerTTD
|
||||||
bot *Bot
|
bot *Bot
|
||||||
|
configFile string
|
||||||
|
|
||||||
configFlag = flag.String("config", "config.json", "config file")
|
configFlag = flag.String("config", "", "config file")
|
||||||
initFlag = flag.Bool("init", false, "init config")
|
initFlag = flag.Bool("init", false, "init config")
|
||||||
|
configEnv = envflag.String("CONFIG", "", "config file")
|
||||||
|
initEnv = envflag.Bool("INIT", false, "init config")
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@ -21,14 +26,23 @@ func main() {
|
|||||||
|
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
|
if *configFlag != "" {
|
||||||
|
configFile = *configFlag
|
||||||
|
} else if *configEnv != "" {
|
||||||
|
configFile = *configEnv
|
||||||
|
} else {
|
||||||
|
configFile = "config.json"
|
||||||
|
}
|
||||||
|
|
||||||
cfg = &Config{}
|
cfg = &Config{}
|
||||||
if *initFlag {
|
if *initFlag || *initEnv {
|
||||||
|
logInfoWarn("Initializing configuration..")
|
||||||
err = cfg.Init()
|
err = cfg.Init()
|
||||||
failError(err, "Cannot init config")
|
failError(err, "Cannot init config")
|
||||||
err = cfg.Save(*configFlag)
|
err = cfg.Save(configFile)
|
||||||
failError(err, "Cannot save config")
|
failError(err, "Cannot save config")
|
||||||
} else {
|
} else {
|
||||||
err = cfg.Load(*configFlag)
|
err = cfg.Load(configFile)
|
||||||
failError(err, "Cannot open config")
|
failError(err, "Cannot open config")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
2
ttd.go
2
ttd.go
@ -143,7 +143,7 @@ func (s *ServerTTD) HeartBeat(stop chan struct{}) {
|
|||||||
} else if s.Status.Paused && !s.NeedPause() {
|
} else if s.Status.Paused && !s.NeedPause() {
|
||||||
s.Unpause()
|
s.Unpause()
|
||||||
}
|
}
|
||||||
cfg.Save(*configFlag)
|
cfg.Save(configFile)
|
||||||
time.Sleep(updateHeartBeat)
|
time.Sleep(updateHeartBeat)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
// Code generated by version.sh (@generated) DO NOT EDIT.
|
// Code generated by version.sh (@generated) DO NOT EDIT.
|
||||||
package main
|
package main
|
||||||
var githash = "5fad9f0"
|
var githash = "1fba5c6"
|
||||||
var buildstamp = "2021-11-06_15:33:27"
|
var buildstamp = "2021-11-06_16:13:18"
|
||||||
var commits = "157"
|
var commits = "158"
|
||||||
var version = "5fad9f0-b157 - 2021-11-06_15:33:27"
|
var version = "1fba5c6-b158 - 2021-11-06_16:13:18"
|
||||||
|
Loading…
Reference in New Issue
Block a user