Skip to content

Commit 1483f49

Browse files
arschlesAaron Schlesinger
authored andcommitted
fix(boot.go,Makefile,Dockerfile): merge builder into a single binary
the git-receive hook and the server are accessed via commands
1 parent fb97624 commit 1483f49

3 files changed

Lines changed: 48 additions & 13 deletions

File tree

Makefile

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,7 @@ bootstrap:
3939
# the build as a `docker build`.
4040
build:
4141
${DEV_ENV_PREFIX} -e CGO_ENABLED=0 ${DEV_ENV_IMAGE} go build -a -installsuffix cgo -ldflags '-s' -o $(BINARY_DEST_DIR)/boot boot.go || exit 1
42-
@$(call check-static-binary,$(BINARY_DEST_DIR)/builder)
43-
${DEV_ENV_PREFIX} -e CGO_ENABLED=0 ${DEV_ENV_IMAGE} go build -a -installsuffix cgo -ldflags '-s' -o $(BINARY_DEST_DIR)/gitreceive ./gitreceive/main.go || exit 1
44-
@$(call check-static-binary,$(BINARY_DEST_DIR)/gitreceive)
42+
@$(call check-static-binary,$(BINARY_DEST_DIR)/boot)
4543

4644
test:
4745
${DEV_ENV_CMD} go test ./pkg && \

boot.go

Lines changed: 46 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,63 @@
11
package main
22

33
import (
4-
"log"
54
"os"
65
"runtime"
76

7+
"github.com/codegangsta/cli"
88
"github.com/deis/builder/fetcher"
99
"github.com/deis/builder/pkg"
10-
"github.com/kelseyhightower/envconfig"
10+
"github.com/deis/builder/pkg/conf"
11+
"github.com/deis/builder/pkg/gitreceive"
12+
"github.com/deis/builder/pkg/log"
13+
"github.com/deis/builder/pkg/sshd"
14+
)
15+
16+
const (
17+
serverConfAppName = "deis-builder-server"
18+
gitReceiveConfAppName = "deis-builder-git-receive"
1119
)
1220

1321
func init() {
1422
runtime.GOMAXPROCS(runtime.NumCPU())
1523
}
1624

1725
func main() {
18-
var conf Config
19-
if err := envconfig.Process("builder", &conf); err != nil {
20-
log.Fatalf("error fetching config [%s]", err)
21-
os.Exit(1)
26+
app := cli.NewApp()
27+
28+
app.Commands = []cli.Command{
29+
{
30+
Name: "server",
31+
Aliases: []string{"srv"},
32+
Usage: "Run the git server",
33+
Action: func(c *cli.Context) {
34+
cnf := new(sshd.Config)
35+
if err := conf.EnvConfig(serverConfAppName, cnf); err != nil {
36+
log.Err("getting config for %s [%s]", serverConfAppName, err)
37+
os.Exit(1)
38+
}
39+
log.Info("starting fetcher on port %d", cnf.FetcherPort)
40+
go fetcher.Serve(cnf.FetcherPort)
41+
os.Exit(pkg.Run(cnf.SSHHostIP, cnf.SSHHostPort, "boot"))
42+
},
43+
},
44+
{
45+
Name: "git-receive",
46+
Aliases: []string{"gr"},
47+
Usage: "Run the git-receive hook",
48+
Action: func(c *cli.Context) {
49+
cnf := new(gitreceive.Config)
50+
if err := conf.EnvConfig(gitReceiveConfAppName, cnf); err != nil {
51+
log.Err("Error getting config for %s [%s]", gitReceiveConfAppName, err)
52+
os.Exit(1)
53+
}
54+
if err := gitreceive.Run(cnf); err != nil {
55+
log.Err("running git receive hook [%s]", err)
56+
os.Exit(1)
57+
}
58+
},
59+
},
2260
}
23-
log.Printf("starting fetcher on port %d", conf.FetcherPort)
24-
go fetcher.Serve(conf.FetcherPort)
25-
os.Exit(pkg.Run(conf.SSHHostIP, conf.SSHHostPort, "boot"))
61+
62+
app.Run(os.Args)
2663
}

rootfs/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ RUN chown -R $GITUSER:$GITUSER $GITHOME
4141

4242

4343
ADD ./check-repos /home/git/
44-
ENTRYPOINT ["/bin/boot"]
44+
ENTRYPOINT ["/bin/boot", "server"]
4545
EXPOSE 2223
4646
EXPOSE 3000
4747
RUN addgroup -g 2000 slug && adduser -D -u 2000 -G slug slug

0 commit comments

Comments
 (0)