Skip to content

Commit

Permalink
adding debian 10 build to node js (GoogleContainerTools#573)
Browse files Browse the repository at this point in the history
* adding debian 10 build to node js

* load distro suffixes from distro.bzl

* adds new build target for nodejs, defaulting to debian9

* just testing something

* retry

* adds latest tags for nodejs builds

* adds new node js build to cloudbuild

* point latest and debug tags to node 14

* Update BUILD

Co-authored-by: Chanseok Oh <[email protected]>

* fix node version for default debian9 debug image

Co-authored-by: Chanseok Oh <[email protected]>

* remove empty line in nodejs build

* Update cloudbuild.yaml formatting

Co-authored-by: Chanseok Oh <[email protected]>

* adds distro suffixes for nodejs example images

* Update examples/nodejs/BUILD

Co-authored-by: Chanseok Oh <[email protected]>

* Update examples/nodejs/BUILD

Co-authored-by: Chanseok Oh <[email protected]>

* Fix rule suffix

* Fix rule suffix

* Fix tests

* Remove executable bits from BUILD

* consistency in examples

Co-authored-by: Chanseok Oh <[email protected]>
  • Loading branch information
AndreasKlein and chanseokoh authored Sep 2, 2020
1 parent ad1103a commit 58cec38
Show file tree
Hide file tree
Showing 11 changed files with 114 additions and 55 deletions.
32 changes: 24 additions & 8 deletions BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -67,14 +67,30 @@ container_bundle(
"gcr.io/{PROJECT_ID}/python3:debug-nonroot": "//experimental/python3:debug_nonroot",
"gcr.io/{PROJECT_ID}/python2.7:latest": "//experimental/python2.7:python27",
"gcr.io/{PROJECT_ID}/python2.7:debug": "//experimental/python2.7:debug",
"gcr.io/{PROJECT_ID}/nodejs:latest": "//experimental/nodejs:nodejs10",
"gcr.io/{PROJECT_ID}/nodejs:10": "//experimental/nodejs:nodejs10",
"gcr.io/{PROJECT_ID}/nodejs:12": "//experimental/nodejs:nodejs12",
"gcr.io/{PROJECT_ID}/nodejs:14": "//experimental/nodejs:nodejs14",
"gcr.io/{PROJECT_ID}/nodejs:debug": "//experimental/nodejs:nodejs10_debug",
"gcr.io/{PROJECT_ID}/nodejs:10-debug": "//experimental/nodejs:nodejs10_debug",
"gcr.io/{PROJECT_ID}/nodejs:12-debug": "//experimental/nodejs:nodejs12_debug",
"gcr.io/{PROJECT_ID}/nodejs:14-debug": "//experimental/nodejs:nodejs14_debug",
"gcr.io/{PROJECT_ID}/nodejs:latest": "//experimental/nodejs:nodejs14_debian9",
"gcr.io/{PROJECT_ID}/nodejs:10": "//experimental/nodejs:nodejs10_debian9",
"gcr.io/{PROJECT_ID}/nodejs:12": "//experimental/nodejs:nodejs12_debian9",
"gcr.io/{PROJECT_ID}/nodejs:14": "//experimental/nodejs:nodejs14_debian9",
"gcr.io/{PROJECT_ID}/nodejs:debug": "//experimental/nodejs:nodejs14_debug_debian9",
"gcr.io/{PROJECT_ID}/nodejs:10-debug": "//experimental/nodejs:nodejs10_debug_debian9",
"gcr.io/{PROJECT_ID}/nodejs:12-debug": "//experimental/nodejs:nodejs12_debug_debian9",
"gcr.io/{PROJECT_ID}/nodejs:14-debug": "//experimental/nodejs:nodejs14_debug_debian9",
"gcr.io/{PROJECT_ID}/nodejs-debian9:10": "//experimental/nodejs:nodejs10_debian9",
"gcr.io/{PROJECT_ID}/nodejs-debian9:12": "//experimental/nodejs:nodejs12_debian9",
"gcr.io/{PROJECT_ID}/nodejs-debian9:14": "//experimental/nodejs:nodejs14_debian9",
"gcr.io/{PROJECT_ID}/nodejs-debian9:latest": "//experimental/nodejs:nodejs14_debian9",
"gcr.io/{PROJECT_ID}/nodejs-debian9:debug": "//experimental/nodejs:nodejs14_debug_debian9",
"gcr.io/{PROJECT_ID}/nodejs-debian9:10-debug": "//experimental/nodejs:nodejs10_debug_debian9",
"gcr.io/{PROJECT_ID}/nodejs-debian9:12-debug": "//experimental/nodejs:nodejs12_debug_debian9",
"gcr.io/{PROJECT_ID}/nodejs-debian9:14-debug": "//experimental/nodejs:nodejs14_debug_debian9",
"gcr.io/{PROJECT_ID}/nodejs-debian10:10": "//experimental/nodejs:nodejs10_debian10",
"gcr.io/{PROJECT_ID}/nodejs-debian10:12": "//experimental/nodejs:nodejs12_debian10",
"gcr.io/{PROJECT_ID}/nodejs-debian10:14": "//experimental/nodejs:nodejs14_debian10",
"gcr.io/{PROJECT_ID}/nodejs-debian10:latest": "//experimental/nodejs:nodejs14_debian10",
"gcr.io/{PROJECT_ID}/nodejs-debian10:debug": "//experimental/nodejs:nodejs14_debug_debian10",
"gcr.io/{PROJECT_ID}/nodejs-debian10:10-debug": "//experimental/nodejs:nodejs10_debug_debian10",
"gcr.io/{PROJECT_ID}/nodejs-debian10:12-debug": "//experimental/nodejs:nodejs12_debug_debian10",
"gcr.io/{PROJECT_ID}/nodejs-debian10:14-debug": "//experimental/nodejs:nodejs14_debug_debian10",
"gcr.io/{PROJECT_ID}/dotnet:latest": "//experimental/dotnet:dotnet_debian9",
"gcr.io/{PROJECT_ID}/dotnet:debug": "//experimental/dotnet:dotnet_debug_debian9",
"gcr.io/{PROJECT_ID}/dotnet-debian9:latest": "//experimental/dotnet:dotnet_debian9",
Expand Down
48 changes: 40 additions & 8 deletions cloudbuild.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -134,14 +134,30 @@ steps:
docker tag bazel/experimental/python2.7:debug_debian9 gcr.io/$PROJECT_ID/python2.7-debian9:debug
docker tag bazel/experimental/python2.7:debug_debian10 gcr.io/$PROJECT_ID/python2.7-debian10:debug
docker tag bazel/experimental/nodejs:nodejs10 gcr.io/$PROJECT_ID/nodejs:latest
docker tag bazel/experimental/nodejs:nodejs10 gcr.io/$PROJECT_ID/nodejs:10
docker tag bazel/experimental/nodejs:nodejs12 gcr.io/$PROJECT_ID/nodejs:12
docker tag bazel/experimental/nodejs:nodejs14 gcr.io/$PROJECT_ID/nodejs:14
docker tag bazel/experimental/nodejs:nodejs10_debug gcr.io/$PROJECT_ID/nodejs:debug
docker tag bazel/experimental/nodejs:nodejs10_debug gcr.io/$PROJECT_ID/nodejs:10-debug
docker tag bazel/experimental/nodejs:nodejs12_debug gcr.io/$PROJECT_ID/nodejs:12-debug
docker tag bazel/experimental/nodejs:nodejs14_debug gcr.io/$PROJECT_ID/nodejs:14-debug
docker tag bazel/experimental/nodejs:nodejs14_debian9 gcr.io/$PROJECT_ID/nodejs:latest
docker tag bazel/experimental/nodejs:nodejs10_debian9 gcr.io/$PROJECT_ID/nodejs:10
docker tag bazel/experimental/nodejs:nodejs12_debian9 gcr.io/$PROJECT_ID/nodejs:12
docker tag bazel/experimental/nodejs:nodejs14_debian9 gcr.io/$PROJECT_ID/nodejs:14
docker tag bazel/experimental/nodejs:nodejs14_debug_debian9 gcr.io/$PROJECT_ID/nodejs:debug
docker tag bazel/experimental/nodejs:nodejs10_debug_debian9 gcr.io/$PROJECT_ID/nodejs:10-debug
docker tag bazel/experimental/nodejs:nodejs12_debug_debian9 gcr.io/$PROJECT_ID/nodejs:12-debug
docker tag bazel/experimental/nodejs:nodejs14_debug_debian9 gcr.io/$PROJECT_ID/nodejs:14-debug
docker tag bazel/experimental/nodejs:nodejs14_debian9 gcr.io/$PROJECT_ID/nodejs-debian9:latest
docker tag bazel/experimental/nodejs:nodejs10_debian9 gcr.io/$PROJECT_ID/nodejs-debian9:10
docker tag bazel/experimental/nodejs:nodejs12_debian9 gcr.io/$PROJECT_ID/nodejs-debian9:12
docker tag bazel/experimental/nodejs:nodejs14_debian9 gcr.io/$PROJECT_ID/nodejs-debian9:14
docker tag bazel/experimental/nodejs:nodejs14_debug_debian9 gcr.io/$PROJECT_ID/nodejs-debian9:debug
docker tag bazel/experimental/nodejs:nodejs10_debug_debian9 gcr.io/$PROJECT_ID/nodejs-debian9:10-debug
docker tag bazel/experimental/nodejs:nodejs12_debug_debian9 gcr.io/$PROJECT_ID/nodejs-debian9:12-debug
docker tag bazel/experimental/nodejs:nodejs14_debug_debian9 gcr.io/$PROJECT_ID/nodejs-debian9:14-debug
docker tag bazel/experimental/nodejs:nodejs14_debian10 gcr.io/$PROJECT_ID/nodejs-debian10:latest
docker tag bazel/experimental/nodejs:nodejs10_debian10 gcr.io/$PROJECT_ID/nodejs-debian10:10
docker tag bazel/experimental/nodejs:nodejs12_debian10 gcr.io/$PROJECT_ID/nodejs-debian10:12
docker tag bazel/experimental/nodejs:nodejs14_debian10 gcr.io/$PROJECT_ID/nodejs-debian10:14
docker tag bazel/experimental/nodejs:nodejs14_debug_debian10 gcr.io/$PROJECT_ID/nodejs-debian10:debug
docker tag bazel/experimental/nodejs:nodejs10_debug_debian10 gcr.io/$PROJECT_ID/nodejs-debian10:10-debug
docker tag bazel/experimental/nodejs:nodejs12_debug_debian10 gcr.io/$PROJECT_ID/nodejs-debian10:12-debug
docker tag bazel/experimental/nodejs:nodejs14_debug_debian10 gcr.io/$PROJECT_ID/nodejs-debian10:14-debug
- name: gcr.io/cloud-marketplace-containers/google/bazel:3.2.0
entrypoint: sh
Expand Down Expand Up @@ -247,6 +263,22 @@ images:
- 'gcr.io/$PROJECT_ID/nodejs:10-debug'
- 'gcr.io/$PROJECT_ID/nodejs:12-debug'
- 'gcr.io/$PROJECT_ID/nodejs:14-debug'
- 'gcr.io/$PROJECT_ID/nodejs-debian9:latest'
- 'gcr.io/$PROJECT_ID/nodejs-debian9:10'
- 'gcr.io/$PROJECT_ID/nodejs-debian9:12'
- 'gcr.io/$PROJECT_ID/nodejs-debian9:14'
- 'gcr.io/$PROJECT_ID/nodejs-debian9:debug'
- 'gcr.io/$PROJECT_ID/nodejs-debian9:10-debug'
- 'gcr.io/$PROJECT_ID/nodejs-debian9:12-debug'
- 'gcr.io/$PROJECT_ID/nodejs-debian9:14-debug'
- 'gcr.io/$PROJECT_ID/nodejs-debian10:latest'
- 'gcr.io/$PROJECT_ID/nodejs-debian10:10'
- 'gcr.io/$PROJECT_ID/nodejs-debian10:12'
- 'gcr.io/$PROJECT_ID/nodejs-debian10:14'
- 'gcr.io/$PROJECT_ID/nodejs-debian10:debug'
- 'gcr.io/$PROJECT_ID/nodejs-debian10:10-debug'
- 'gcr.io/$PROJECT_ID/nodejs-debian10:12-debug'
- 'gcr.io/$PROJECT_ID/nodejs-debian10:14-debug'
- 'gcr.io/$PROJECT_ID/dotnet:latest'
- 'gcr.io/$PROJECT_ID/dotnet:debug'
- 'gcr.io/$PROJECT_ID/dotnet-debian9:latest'
Expand Down
17 changes: 9 additions & 8 deletions examples/cc/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,20 @@
package(default_visibility = ["//visibility:public"])

load("@io_bazel_rules_docker//container:container.bzl", "container_image")
load("//base:distro.bzl", "DISTRO_SUFFIXES")

container_image(
name = "hello",
base = "//cc:cc",
[container_image(
name = "hello" + distro_suffix,
base = "//cc:cc" + distro_suffix,
entrypoint = ["./hello"],
files = [":bin/hello"],
)
) for distro_suffix in DISTRO_SUFFIXES]

load("@io_bazel_rules_docker//contrib:test.bzl", "container_test")

container_test(
name = "hello_test",
[container_test(
name = "hello" + distro_suffix + "_test",
size = "small",
configs = ["testdata/hello.yaml"],
image = ":hello",
)
image = ":hello" + distro_suffix,
) for distro_suffix in DISTRO_SUFFIXES]
19 changes: 10 additions & 9 deletions examples/java/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,20 @@
package(default_visibility = ["//visibility:public"])

load("@io_bazel_rules_docker//java:image.bzl", "java_image")
load("//base:distro.bzl", "DISTRO_SUFFIXES")

java_image(
name = "hello",
[java_image(
name = "hello" + distro_suffix,
srcs = ["HelloJava.java"],
base = "//java:java11",
base = "//java:java11" + distro_suffix,
main_class = "examples.HelloJava",
)
) for distro_suffix in DISTRO_SUFFIXES]

load("@io_bazel_rules_docker//contrib:test.bzl", "container_test")

container_test(
name = "hello_test",
[container_test(
name = "hello" + distro_suffix + "_test",
size = "small",
configs = ["testdata/hello.yaml"],
image = ":hello",
)
configs = ["testdata/hello" + distro_suffix + ".yaml"],
image = ":hello" + distro_suffix,
) for distro_suffix in DISTRO_SUFFIXES]
5 changes: 5 additions & 0 deletions examples/java/testdata/hello_debian10.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
schemaVersion: "1.0.0"
commandTests:
- name: hello
command: ['/usr/bin/java', '-cp', '/app/distroless/examples/java/hello_debian10.binary.jar', 'examples.HelloJava']
expectedOutput: ['Hello world']
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
schemaVersion: "1.0.0"
commandTests:
- name: hello
command: ['/usr/bin/java', '-cp', '/app/distroless/examples/java/hello.binary.jar', 'examples.HelloJava']
command: ['/usr/bin/java', '-cp', '/app/distroless/examples/java/hello_debian9.binary.jar', 'examples.HelloJava']
expectedOutput: ['Hello world']
25 changes: 13 additions & 12 deletions examples/nodejs/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,29 @@
package(default_visibility = ["//visibility:public"])

load("@io_bazel_rules_docker//container:container.bzl", "container_image")
load("//base:distro.bzl", "DISTRO_SUFFIXES")

# These examples are adapted from:
# https://howtonode.org/hello-node
container_image(
name = "hello",
base = "//experimental/nodejs:nodejs10",
[container_image(
name = "hello" + distro_suffix,
base = "//experimental/nodejs:nodejs14" + distro_suffix,
cmd = ["hello.js"],
files = [":hello.js"],
)
) for distro_suffix in DISTRO_SUFFIXES]

container_image(
name = "hello_http",
base = "//experimental/nodejs:nodejs10",
[container_image(
name = "hello_http" + distro_suffix,
base = "//experimental/nodejs:nodejs14" + distro_suffix,
cmd = ["hello_http.js"],
files = [":hello_http.js"],
ports = ["8000"],
)
) for distro_suffix in DISTRO_SUFFIXES]

load("@io_bazel_rules_docker//contrib:test.bzl", "container_test")

container_test(
name = "hello_test",
[container_test(
name = "hello" + distro_suffix + "_test",
configs = ["testdata/hello.yaml"],
image = ":hello",
)
image = ":hello" + distro_suffix,
) for distro_suffix in DISTRO_SUFFIXES]
15 changes: 8 additions & 7 deletions examples/nonroot/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ load("@io_bazel_rules_docker//container:container.bzl", "container_image")
load("@io_bazel_rules_docker//contrib:test.bzl", "container_test")
load("@io_bazel_rules_docker//contrib:passwd.bzl", "passwd_entry", "passwd_file")
load("@io_bazel_rules_go//go:def.bzl", "go_binary")
load("//base:distro.bzl", "DISTRO_SUFFIXES")

# Create a passwd file with a nonroot user and uid.
passwd_entry(
Expand Down Expand Up @@ -49,17 +50,17 @@ go_binary(
pure = "on",
)

container_image(
name = "check_user_image",
[container_image(
name = "check_user_image" + distro_suffix,
base = ":passwd_image",
files = [":user"],
visibility = ["//visibility:private"],
)
) for distro_suffix in DISTRO_SUFFIXES]

# Test to verify this works :)
container_test(
name = "check_user_test",
[container_test(
name = "check_user" + distro_suffix + "_test",
configs = ["testdata/user.yaml"],
image = ":check_user_image",
image = ":check_user_image" + distro_suffix,
visibility = ["//visibility:private"],
)
) for distro_suffix in DISTRO_SUFFIXES]
6 changes: 4 additions & 2 deletions experimental/nodejs/BUILD
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package(default_visibility = ["//visibility:public"])

load("@io_bazel_rules_docker//container:container.bzl", "container_image")
load("//base:distro.bzl", "DISTRO_SUFFIXES")

NODEJS_MAJOR_VERISONS = ("10", "12", "14")

[
container_image(
name = "nodejs" + major_version + ("" if (not mode) else mode),
base = ("//cc:cc" if (not ("debug" in mode)) else "//cc:debug"),
name = "nodejs" + major_version + ("" if (not mode) else mode) + distro_suffix,
base = ("//cc:cc" if (not ("debug" in mode)) else "//cc:debug") + distro_suffix,
entrypoint = ["/nodejs/bin/node"],
tars = ["@nodejs" + major_version + "//:tar"],
)
Expand All @@ -16,4 +17,5 @@ NODEJS_MAJOR_VERISONS = ("10", "12", "14")
"_debug",
]
for major_version in NODEJS_MAJOR_VERISONS
for distro_suffix in DISTRO_SUFFIXES
]
Empty file modified experimental/python2.7/BUILD
100755 → 100644
Empty file.
Empty file modified experimental/python3/BUILD
100755 → 100644
Empty file.

0 comments on commit 58cec38

Please sign in to comment.