mirror of https://github.com/k3s-io/k3s
bazel: statically link dockerized components
and remove libc from docker images when it's not needed.pull/6/head
parent
55042b0ba9
commit
3757e8bb5c
15
build/BUILD
15
build/BUILD
|
@ -32,17 +32,10 @@ docker_build(
|
||||||
)
|
)
|
||||||
|
|
||||||
docker_build(
|
docker_build(
|
||||||
name = "busybox-libc",
|
name = "busybox-net",
|
||||||
base = ":busybox",
|
base = ":busybox",
|
||||||
debs = [
|
debs = [
|
||||||
"@libc_deb//file",
|
"@libc_deb//file",
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|
||||||
docker_build(
|
|
||||||
name = "busybox-net",
|
|
||||||
base = ":busybox-libc",
|
|
||||||
debs = [
|
|
||||||
"@iptables_deb//file",
|
"@iptables_deb//file",
|
||||||
"@iproute2_deb//file",
|
"@iproute2_deb//file",
|
||||||
"@libnetlink_deb//file",
|
"@libnetlink_deb//file",
|
||||||
|
@ -52,15 +45,15 @@ docker_build(
|
||||||
|
|
||||||
DOCKERIZED_BINARIES = {
|
DOCKERIZED_BINARIES = {
|
||||||
"kube-apiserver": {
|
"kube-apiserver": {
|
||||||
"base": ":busybox-libc",
|
"base": ":busybox",
|
||||||
"target": "//cmd/kube-apiserver:kube-apiserver",
|
"target": "//cmd/kube-apiserver:kube-apiserver",
|
||||||
},
|
},
|
||||||
"kube-controller-manager": {
|
"kube-controller-manager": {
|
||||||
"base": ":busybox-libc",
|
"base": ":busybox",
|
||||||
"target": "//cmd/kube-controller-manager:kube-controller-manager",
|
"target": "//cmd/kube-controller-manager:kube-controller-manager",
|
||||||
},
|
},
|
||||||
"kube-scheduler": {
|
"kube-scheduler": {
|
||||||
"base": ":busybox-libc",
|
"base": ":busybox",
|
||||||
"target": "//plugin/cmd/kube-scheduler:kube-scheduler",
|
"target": "//plugin/cmd/kube-scheduler:kube-scheduler",
|
||||||
},
|
},
|
||||||
"kube-proxy": {
|
"kube-proxy": {
|
||||||
|
|
|
@ -10,7 +10,14 @@ load(
|
||||||
|
|
||||||
go_binary(
|
go_binary(
|
||||||
name = "cloud-controller-manager",
|
name = "cloud-controller-manager",
|
||||||
|
gc_linkopts = [
|
||||||
|
"-linkmode",
|
||||||
|
"external",
|
||||||
|
"-extldflags",
|
||||||
|
"-static",
|
||||||
|
],
|
||||||
library = ":go_default_library",
|
library = ":go_default_library",
|
||||||
|
linkstamp = "k8s.io/kubernetes/pkg/version",
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,12 @@ load(
|
||||||
|
|
||||||
go_binary(
|
go_binary(
|
||||||
name = "kube-apiserver",
|
name = "kube-apiserver",
|
||||||
|
gc_linkopts = [
|
||||||
|
"-linkmode",
|
||||||
|
"external",
|
||||||
|
"-extldflags",
|
||||||
|
"-static",
|
||||||
|
],
|
||||||
library = ":go_default_library",
|
library = ":go_default_library",
|
||||||
linkstamp = "k8s.io/kubernetes/pkg/version",
|
linkstamp = "k8s.io/kubernetes/pkg/version",
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
|
|
|
@ -10,6 +10,12 @@ load(
|
||||||
|
|
||||||
go_binary(
|
go_binary(
|
||||||
name = "kube-controller-manager",
|
name = "kube-controller-manager",
|
||||||
|
gc_linkopts = [
|
||||||
|
"-linkmode",
|
||||||
|
"external",
|
||||||
|
"-extldflags",
|
||||||
|
"-static",
|
||||||
|
],
|
||||||
library = ":go_default_library",
|
library = ":go_default_library",
|
||||||
linkstamp = "k8s.io/kubernetes/pkg/version",
|
linkstamp = "k8s.io/kubernetes/pkg/version",
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
|
|
|
@ -10,6 +10,12 @@ load(
|
||||||
|
|
||||||
go_binary(
|
go_binary(
|
||||||
name = "kube-proxy",
|
name = "kube-proxy",
|
||||||
|
gc_linkopts = [
|
||||||
|
"-linkmode",
|
||||||
|
"external",
|
||||||
|
"-extldflags",
|
||||||
|
"-static",
|
||||||
|
],
|
||||||
library = ":go_default_library",
|
library = ":go_default_library",
|
||||||
linkstamp = "k8s.io/kubernetes/pkg/version",
|
linkstamp = "k8s.io/kubernetes/pkg/version",
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
|
|
|
@ -10,6 +10,12 @@ load(
|
||||||
|
|
||||||
go_binary(
|
go_binary(
|
||||||
name = "kubeadm",
|
name = "kubeadm",
|
||||||
|
gc_linkopts = [
|
||||||
|
"-linkmode",
|
||||||
|
"external",
|
||||||
|
"-extldflags",
|
||||||
|
"-static",
|
||||||
|
],
|
||||||
library = ":go_default_library",
|
library = ":go_default_library",
|
||||||
linkstamp = "k8s.io/kubernetes/pkg/version",
|
linkstamp = "k8s.io/kubernetes/pkg/version",
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
|
|
|
@ -10,6 +10,12 @@ load(
|
||||||
|
|
||||||
go_binary(
|
go_binary(
|
||||||
name = "kubectl",
|
name = "kubectl",
|
||||||
|
gc_linkopts = [
|
||||||
|
"-linkmode",
|
||||||
|
"external",
|
||||||
|
"-extldflags",
|
||||||
|
"-static",
|
||||||
|
],
|
||||||
library = ":go_default_library",
|
library = ":go_default_library",
|
||||||
linkstamp = "k8s.io/kubernetes/pkg/version",
|
linkstamp = "k8s.io/kubernetes/pkg/version",
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
|
|
|
@ -10,6 +10,12 @@ load(
|
||||||
|
|
||||||
go_binary(
|
go_binary(
|
||||||
name = "kube-scheduler",
|
name = "kube-scheduler",
|
||||||
|
gc_linkopts = [
|
||||||
|
"-linkmode",
|
||||||
|
"external",
|
||||||
|
"-extldflags",
|
||||||
|
"-static",
|
||||||
|
],
|
||||||
library = ":go_default_library",
|
library = ":go_default_library",
|
||||||
linkstamp = "k8s.io/kubernetes/pkg/version",
|
linkstamp = "k8s.io/kubernetes/pkg/version",
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
|
|
|
@ -10,7 +10,14 @@ load(
|
||||||
|
|
||||||
go_binary(
|
go_binary(
|
||||||
name = "kube-aggregator",
|
name = "kube-aggregator",
|
||||||
|
gc_linkopts = [
|
||||||
|
"-linkmode",
|
||||||
|
"external",
|
||||||
|
"-extldflags",
|
||||||
|
"-static",
|
||||||
|
],
|
||||||
library = ":go_default_library",
|
library = ":go_default_library",
|
||||||
|
linkstamp = "k8s.io/kubernetes/pkg/version",
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue