Skip to content
This repository was archived by the owner on Jul 18, 2025. It is now read-only.

Commit 3930fe7

Browse files
silvin-lubeckichris-crone
authored andcommitted
Add a new binary docker-app-standalone
This is in fact the old docker-app before its pluginization. Added it to cross compilation Now each released tar.gz file per os comes with two binaries in it: docker-app-plugin-os and docker-app-standalone-os Signed-off-by: Silvin Lubecki <silvin.lubecki@docker.com>
1 parent 2475ad2 commit 3930fe7

4 files changed

Lines changed: 73 additions & 4 deletions

File tree

Makefile

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,22 @@ check_go_env:
3333
@test $$(go list) = "$(PKG_NAME)" || \
3434
(echo "Invalid Go environment - The local directory structure must match: $(PKG_NAME)" && false)
3535

36-
cross: bin/$(BIN_NAME)-linux bin/$(BIN_NAME)-darwin bin/$(BIN_NAME)-windows.exe ## cross-compile binaries (linux, darwin, windows)
36+
cross: cross-plugin cross-standalone ## cross-compile binaries (linux, darwin, windows)
37+
38+
cross-plugin: bin/$(BIN_NAME)-linux bin/$(BIN_NAME)-darwin bin/$(BIN_NAME)-windows.exe
39+
40+
cross-standalone: bin/${BIN_STANDALONE_NAME}-linux bin/${BIN_STANDALONE_NAME}-darwin bin/${BIN_STANDALONE_NAME}-windows.exe
3741

3842
e2e-cross: bin/$(BIN_NAME)-e2e-linux bin/$(BIN_NAME)-e2e-darwin bin/$(BIN_NAME)-e2e-windows.exe
3943

44+
.PHONY: bin/${BIN_STANDALONE_NAME}-windows
45+
bin/${BIN_STANDALONE_NAME}-%.exe bin/${BIN_STANDALONE_NAME}-%: cmd/${BIN_STANDALONE_NAME} check_go_env
46+
GOOS=$* $(GO_BUILD) -o $@ ./$<
47+
48+
.PHONY: bin/${BIN_STANDALONE_NAME}
49+
bin/${BIN_STANDALONE_NAME}: cmd/${BIN_STANDALONE_NAME} check_go_env
50+
$(GO_BUILD) -o $@$(EXEC_EXT) ./$<
51+
4052
.PHONY: bin/$(BIN_NAME)-e2e-windows
4153
bin/$(BIN_NAME)-e2e-%.exe bin/$(BIN_NAME)-e2e-%: e2e bin/$(BIN_NAME)-%
4254
GOOS=$* $(GO_TEST) -c -o $@ ./e2e/

cmd/docker-app-standalone/main.go

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"os"
6+
7+
"github.com/spf13/cobra"
8+
"github.com/spf13/pflag"
9+
10+
"github.com/docker/app/internal"
11+
app "github.com/docker/app/internal/commands"
12+
"github.com/docker/cli/cli"
13+
"github.com/docker/cli/cli/command"
14+
cliflags "github.com/docker/cli/cli/flags"
15+
"github.com/sirupsen/logrus"
16+
)
17+
18+
func main() {
19+
dockerCli, err := command.NewDockerCli()
20+
if err != nil {
21+
fmt.Fprintln(os.Stderr, err)
22+
}
23+
logrus.SetOutput(dockerCli.Err())
24+
25+
cmd := app.NewRootCmd("docker-app", dockerCli)
26+
configureRootCmd(cmd, dockerCli)
27+
28+
if err := cmd.Execute(); err != nil {
29+
os.Exit(1)
30+
}
31+
}
32+
33+
func configureRootCmd(cmd *cobra.Command, dockerCli *command.DockerCli) {
34+
var (
35+
opts *cliflags.ClientOptions
36+
flags *pflag.FlagSet
37+
)
38+
39+
cmd.SilenceUsage = true
40+
cmd.TraverseChildren = true
41+
cmd.PersistentPreRunE = func(cmd *cobra.Command, args []string) error {
42+
opts.Common.SetDefaultOptions(flags)
43+
return dockerCli.Initialize(opts)
44+
}
45+
cmd.Version = fmt.Sprintf("%s, build %s", internal.Version, internal.GitCommit)
46+
47+
opts, flags, _ = cli.SetupRootCommand(cmd)
48+
flags.BoolP("version", "v", false, "Print version information")
49+
cmd.SetVersionTemplate("docker-app version {{.Version}}\n")
50+
}

docker.Makefile

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,16 @@ cross: create_bin ## cross-compile binaries (linux, darwin, windows)
4343
docker cp $(CROSS_CTNR_NAME):$(PKG_PATH)/bin/$(BIN_NAME)-linux bin/$(BIN_NAME)-linux
4444
docker cp $(CROSS_CTNR_NAME):$(PKG_PATH)/bin/$(BIN_NAME)-darwin bin/$(BIN_NAME)-darwin
4545
docker cp $(CROSS_CTNR_NAME):$(PKG_PATH)/bin/$(BIN_NAME)-windows.exe bin/$(BIN_NAME)-windows.exe
46+
docker cp $(CROSS_CTNR_NAME):$(PKG_PATH)/bin/${BIN_STANDALONE_NAME}-linux bin/${BIN_STANDALONE_NAME}-linux
47+
docker cp $(CROSS_CTNR_NAME):$(PKG_PATH)/bin/${BIN_STANDALONE_NAME}-darwin bin/${BIN_STANDALONE_NAME}-darwin
48+
docker cp $(CROSS_CTNR_NAME):$(PKG_PATH)/bin/${BIN_STANDALONE_NAME}-windows.exe bin/${BIN_STANDALONE_NAME}-windows.exe
4649
docker rm $(CROSS_CTNR_NAME)
4750
@$(call chmod,+x,bin/$(BIN_NAME)-linux)
4851
@$(call chmod,+x,bin/$(BIN_NAME)-darwin)
4952
@$(call chmod,+x,bin/$(BIN_NAME)-windows.exe)
53+
@$(call chmod,+x,bin/${BIN_STANDALONE_NAME}-linux)
54+
@$(call chmod,+x,bin/${BIN_STANDALONE_NAME}-darwin)
55+
@$(call chmod,+x,bin/${BIN_STANDALONE_NAME}-windows.exe)
5056

5157
cli-cross: create_bin
5258
docker build $(BUILD_ARGS) --target=build -t $(CLI_IMAGE_NAME) .
@@ -71,11 +77,11 @@ e2e-cross: create_bin
7177
@$(call chmod,+x,bin/$(BIN_NAME)-e2e-windows.exe)
7278

7379
tars:
74-
tar czf bin/$(BIN_NAME)-linux.tar.gz -C bin $(BIN_NAME)-linux
80+
tar --transform='flags=r;s|$(BIN_NAME)-linux|$(BIN_NAME)-plugin-linux|' -czf bin/$(BIN_NAME)-linux.tar.gz -C bin $(BIN_NAME)-linux ${BIN_STANDALONE_NAME}-linux
7581
tar czf bin/$(BIN_NAME)-e2e-linux.tar.gz -C bin $(BIN_NAME)-e2e-linux
76-
tar czf bin/$(BIN_NAME)-darwin.tar.gz -C bin $(BIN_NAME)-darwin
82+
tar --transform='flags=r;s|$(BIN_NAME)-darwin|$(BIN_NAME)-plugin-darwin|' -czf bin/$(BIN_NAME)-darwin.tar.gz -C bin $(BIN_NAME)-darwin ${BIN_STANDALONE_NAME}-darwin
7783
tar czf bin/$(BIN_NAME)-e2e-darwin.tar.gz -C bin $(BIN_NAME)-e2e-darwin
78-
tar czf bin/$(BIN_NAME)-windows.tar.gz -C bin $(BIN_NAME)-windows.exe
84+
tar --transform='flags=r;s|$(BIN_NAME)-windows|$(BIN_NAME)-plugin-windows|' -czf bin/$(BIN_NAME)-windows.tar.gz -C bin $(BIN_NAME)-windows.exe ${BIN_STANDALONE_NAME}-windows.exe
7985
tar czf bin/$(BIN_NAME)-e2e-windows.tar.gz -C bin $(BIN_NAME)-e2e-windows.exe
8086

8187
test: test-unit test-e2e ## run all tests

vars.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
PKG_NAME := github.com/docker/app
22
BIN_NAME ?= docker-app
3+
BIN_STANDALONE_NAME := ${BIN_NAME}-standalone
34
E2E_NAME := $(BIN_NAME)-e2e
45

56
# Enable experimental features. "on" or "off"

0 commit comments

Comments
 (0)