Skip to content

Commit 06811be

Browse files
authored
Merge pull request GoogleContainerTools#280 from chanseokoh/migrate-docker-rules
Migrate docker rules
2 parents 6ab3504 + b6019ea commit 06811be

File tree

19 files changed

+60
-65
lines changed

19 files changed

+60
-65
lines changed

BUILD

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package(default_visibility = ["//visibility:public"])
22

3-
load("@io_bazel_rules_docker//docker:docker.bzl", "docker_bundle")
3+
load("@io_bazel_rules_docker//container:container.bzl", "container_bundle")
44

5-
docker_bundle(
5+
container_bundle(
66
name = "all",
77
images = {
88
"gcr.io/{PROJECT_ID}/go:latest": "//base:static",
@@ -23,12 +23,12 @@ docker_bundle(
2323
"gcr.io/{PROJECT_ID}/dotnet:latest": "//experimental/dotnet",
2424
"gcr.io/{PROJECT_ID}/dotnet:debug": "//experimental/dotnet:debug",
2525
},
26-
stamp = True,
2726
)
2827

29-
load("@io_bazel_rules_docker//contrib:push-all.bzl", "docker_push")
28+
load("@io_bazel_rules_docker//contrib:push-all.bzl", "container_push")
3029

31-
docker_push(
30+
container_push(
3231
name = "publish",
3332
bundle = ":all",
33+
format = "Docker",
3434
)

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ See here for:
116116
See here for examples on how to complete some common tasks in your image:
117117

118118
* [Adding and running as a non-root user](examples/nonroot)
119-
* [Including debian packages](https://github.com/bazelbuild/rules_docker#docker_build-1)
119+
* [Including debian packages](https://github.com/bazelbuild/rules_docker#container_image-1)
120120
* [Including CA certificates](cacerts/)
121121

122122
See here for more information on how these images are [built and released](RELEASES.md).

WORKSPACE

+14-19
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,12 @@
11
workspace(name = "distroless")
22

3-
load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
43
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
54
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file")
65

7-
git_repository(
8-
name = "subpar",
9-
remote = "https://github.com/google/subpar",
10-
tag = "1.0.0",
11-
)
12-
13-
git_repository(
6+
http_archive(
147
name = "io_bazel_rules_go",
15-
remote = "https://github.com/bazelbuild/rules_go.git",
16-
tag = "0.16.3",
8+
sha256 = "7be7dc01f1e0afdba6c8eb2b43d2fa01c743be1b9273ab1eaf6c233df078d705",
9+
urls = ["https://github.com/bazelbuild/rules_go/releases/download/0.16.5/rules_go-0.16.5.tar.gz"],
1710
)
1811

1912
load("@io_bazel_rules_go//go:def.bzl", "go_register_toolchains", "go_rules_dependencies")
@@ -195,29 +188,31 @@ http_file(
195188
)
196189

197190
# Docker rules.
198-
git_repository(
191+
http_archive(
199192
name = "io_bazel_rules_docker",
200-
commit = "5eb0728594013d746959c4bd21aa4b0c3e3848d8",
201-
remote = "https://github.com/bazelbuild/rules_docker.git",
193+
sha256 = "aed1c249d4ec8f703edddf35cbe9dfaca0b5f5ea6e4cd9e83e99f3b0d1136c3d",
194+
strip_prefix = "rules_docker-0.7.0",
195+
urls = ["https://github.com/bazelbuild/rules_docker/archive/v0.7.0.tar.gz"],
202196
)
203197

204198
load(
205-
"@io_bazel_rules_docker//docker:docker.bzl",
206-
"docker_pull",
207-
"docker_repositories",
199+
"@io_bazel_rules_docker//repositories:repositories.bzl",
200+
container_repositories = "repositories",
208201
)
209202

203+
container_repositories()
204+
205+
load("@io_bazel_rules_docker//container:container.bzl", "container_pull")
206+
210207
# Used to generate java ca certs.
211-
docker_pull(
208+
container_pull(
212209
name = "debian8",
213210
# From tag: 2017-09-11-115552
214211
digest = "sha256:6d381d0bf292e31291136cff03b3209eb40ef6342fb790483fa1b9d3af84ae46",
215212
registry = "gcr.io",
216213
repository = "google-appengine/debian8",
217214
)
218215

219-
docker_repositories()
220-
221216
# Have the py_image dependencies for testing.
222217
load(
223218
"@io_bazel_rules_docker//python:image.bzl",

base/BUILD

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package(default_visibility = ["//visibility:public"])
22

3-
load("@io_bazel_rules_docker//docker:docker.bzl", "docker_build")
4-
load("@io_bazel_rules_docker//contrib:passwd.bzl", "passwd_entry", "passwd_tar")
5-
load("@io_bazel_rules_docker//contrib:group.bzl", "group_entry", "group_file")
63
load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar")
4+
load("@io_bazel_rules_docker//container:container.bzl", "container_image")
75
load("@io_bazel_rules_docker//contrib:test.bzl", "container_test")
6+
load("@io_bazel_rules_docker//contrib:passwd.bzl", "passwd_entry", "passwd_tar")
7+
load("@io_bazel_rules_docker//contrib:group.bzl", "group_entry", "group_file")
88
load("@io_bazel_rules_go//go:def.bzl", "go_binary")
99

1010
# Create /etc/passwd with the root user
@@ -57,7 +57,7 @@ cacerts(
5757
# A tar is needed because at the moment there is no way to create a
5858
# directory with specific permissions.
5959

60-
docker_build(
60+
container_image(
6161
name = "static",
6262
debs = [
6363
packages["base-files"],
@@ -81,7 +81,7 @@ docker_build(
8181
],
8282
)
8383

84-
docker_build(
84+
container_image(
8585
name = "base",
8686
base = ":static",
8787
debs = [
@@ -92,7 +92,7 @@ docker_build(
9292
)
9393

9494
# A debug image with busybox available.
95-
docker_build(
95+
container_image(
9696
name = "debug",
9797
base = ":base",
9898
directory = "/",
@@ -119,7 +119,7 @@ go_binary(
119119
pure = "on",
120120
)
121121

122-
docker_build(
122+
container_image(
123123
name = "check_certs_image",
124124
base = "//base:base",
125125
files = [":check_certs"],

cacerts/java.bzl

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
def _impl(ctx):
1818
# Strip off the '.tar'
1919
image_name = ctx.attr._builder_image.label.name.split('.', 1)[0]
20-
# docker_build rules always generate an image named 'bazel/$package:$name'.
20+
# container_image rules always generate an image named 'bazel/$package:$name'.
2121
builder_image_name = "bazel/%s:%s" % (ctx.attr._builder_image.label.package,
2222
image_name)
2323

cc/BUILD

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package(default_visibility = ["//visibility:public"])
22

3-
load("@io_bazel_rules_docker//docker:docker.bzl", "docker_build")
3+
load("@io_bazel_rules_docker//container:container.bzl", "container_image")
44
load("@package_bundle//file:packages.bzl", "packages")
55

66
# An intermediate image for Java and other "mostly statically" compiled languages
7-
[docker_build(
7+
[container_image(
88
name = "cc" if (not mode) else mode[1:],
99
base = "//base" + mode,
1010
debs = [

examples/dotnet/BUILD

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package(default_visibility = ["//visibility:public"])
22

3-
load("@io_bazel_rules_docker//docker:docker.bzl", "docker_build")
3+
load("@io_bazel_rules_docker//container:container.bzl", "container_image")
44
load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar")
55

6-
docker_build(
6+
container_image(
77
name = "hello",
88
base = "//experimental/dotnet:dotnet",
99
cmd = [

examples/nodejs/BUILD

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
package(default_visibility = ["//visibility:public"])
22

3-
load("@io_bazel_rules_docker//docker:docker.bzl", "docker_build")
3+
load("@io_bazel_rules_docker//container:container.bzl", "container_image")
44

55
# These examples are adapted from:
66
# https://howtonode.org/hello-node
7-
docker_build(
7+
container_image(
88
name = "hello",
99
base = "//experimental/nodejs:nodejs",
1010
cmd = ["hello.js"],
1111
files = [":hello.js"],
1212
)
1313

14-
docker_build(
14+
container_image(
1515
name = "hello_http",
1616
base = "//experimental/nodejs:nodejs",
1717
cmd = ["hello_http.js"],

examples/nonroot/BUILD

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
load("@io_bazel_rules_docker//go:image.bzl", "go_image")
2-
load("@io_bazel_rules_docker//docker:docker.bzl", "docker_build")
3-
load("@io_bazel_rules_docker//contrib:passwd.bzl", "passwd_entry", "passwd_file")
41
load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar")
2+
load("@io_bazel_rules_docker//go:image.bzl", "go_image")
3+
load("@io_bazel_rules_docker//container:container.bzl", "container_image")
54
load("@io_bazel_rules_docker//contrib:test.bzl", "container_test")
5+
load("@io_bazel_rules_docker//contrib:passwd.bzl", "passwd_entry", "passwd_file")
66
load("@io_bazel_rules_go//go:def.bzl", "go_binary")
77

88
# Create a passwd file with a nonroot user and uid.
@@ -28,7 +28,7 @@ pkg_tar(
2828
)
2929

3030
# Include it in our image as a tar.
31-
docker_build(
31+
container_image(
3232
name = "passwd_image",
3333
base = "//base:base",
3434
tars = [":passwd_tar"],
@@ -43,7 +43,7 @@ go_binary(
4343
pure = "on",
4444
)
4545

46-
docker_build(
46+
container_image(
4747
name = "check_user_image",
4848
base = ":passwd_image",
4949
files = [":user"],

examples/python2.7/BUILD

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
load("@io_bazel_rules_docker//python:image.bzl", "py_image")
2-
load("@io_bazel_rules_docker//docker:docker.bzl", "docker_build")
2+
load("@io_bazel_rules_docker//container:container.bzl", "container_image")
33

44
py_image(
55
name = "hello_py",
@@ -9,7 +9,7 @@ py_image(
99
)
1010

1111
# This example runs a python program that walks the filesystem under "/etc" and prints every filename.
12-
docker_build(
12+
container_image(
1313
name = "hello",
1414
base = ":hello_py",
1515
cmd = ["/etc"],

examples/python3/BUILD

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
load("@io_bazel_rules_docker//python:image.bzl", "py_image")
2-
load("@io_bazel_rules_docker//docker:docker.bzl", "docker_build")
2+
load("@io_bazel_rules_docker//container:container.bzl", "container_image")
33

44
py_image(
55
name = "hello_py",
@@ -9,7 +9,7 @@ py_image(
99
)
1010

1111
# This example runs a python program that walks the filesystem under "/etc" and prints every filename.
12-
docker_build(
12+
container_image(
1313
name = "hello",
1414
base = ":hello_py",
1515
cmd = ["/etc"],

experimental/dotnet/BUILD

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package(default_visibility = ["//visibility:public"])
22

3-
load("@io_bazel_rules_docker//docker:docker.bzl", "docker_build")
3+
load("@io_bazel_rules_docker//container:container.bzl", "container_image")
44
load("@package_bundle//file:packages.bzl", "packages")
55

6-
[docker_build(
6+
[container_image(
77
name = "dotnet" if (not mode) else mode[1:],
88
base = "//cc" + mode,
99
debs = [

experimental/dotnet/README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ Hello World!
123123
See the dotnet [Hello World](../../examples/dotnet/) directory for an example and [examples/dotnet/BUILD](../../examples/dotnet/BUILD) using bazel:
124124

125125
```
126-
docker_build(
126+
container_image(
127127
name = "hello",
128128
base = "//dotnet:dotnet",
129129
cmd = [
@@ -214,7 +214,7 @@ Hello World
214214
which in turn makes the build rule just
215215

216216
```
217-
docker_build(
217+
container_image(
218218
name = "hello",
219219
base = "//dotnet:dotnet",
220220
cmd = [

experimental/nodejs/BUILD

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package(default_visibility = ["//visibility:public"])
22

3-
load("@io_bazel_rules_docker//docker:docker.bzl", "docker_build")
3+
load("@io_bazel_rules_docker//container:container.bzl", "container_image")
44

5-
[docker_build(
5+
[container_image(
66
name = "nodejs" if (not mode) else mode[1:],
77
base = "//cc" + mode,
88
entrypoint = ["/nodejs/bin/node"],

experimental/python2.7/BUILD

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package(default_visibility = ["//visibility:public"])
22

3-
load("@io_bazel_rules_docker//docker:docker.bzl", "docker_build")
3+
load("@io_bazel_rules_docker//container:container.bzl", "container_image")
44
load("@io_bazel_rules_docker//contrib:test.bzl", "container_test")
55
load("@package_bundle//file:packages.bzl", "packages")
66

7-
[docker_build(
7+
[container_image(
88
name = "python27" if (not mode) else mode[1:],
99
# Based on //cc so that C extensions work properly.
1010
base = "//cc" + mode,

experimental/python3/BUILD

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package(default_visibility = ["//visibility:public"])
22

3-
load("@io_bazel_rules_docker//docker:docker.bzl", "docker_build")
3+
load("@io_bazel_rules_docker//container:container.bzl", "container_image")
44
load("@io_bazel_rules_docker//contrib:test.bzl", "container_test")
55
load("@package_bundle//file:packages.bzl", "packages")
66

7-
[docker_build(
7+
[container_image(
88
name = "python3" if (not mode) else mode[1:],
99
# Based on //cc so that C extensions work properly.
1010
base = "//cc" + mode,

java/BUILD

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
package(default_visibility = ["//visibility:public"])
22

3-
load("@io_bazel_rules_docker//docker:docker.bzl", "docker_build")
3+
load("@io_bazel_rules_docker//container:container.bzl", "container_image")
4+
load("@io_bazel_rules_docker//java:image.bzl", "java_image")
45
load("@package_bundle//file:packages.bzl", "packages")
56
load("//cacerts:java.bzl", "cacerts_java")
6-
load("@io_bazel_rules_docker//java:image.bzl", "java_image")
77

88
cacerts_java(
99
name = "cacerts_java",
1010
)
1111

12-
[docker_build(
12+
[container_image(
1313
name = "java8" if (not mode) else mode[1:],
1414
base = "//cc" + mode,
1515
debs = [

java/jetty/BUILD

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package(default_visibility = ["//visibility:public"])
22

3-
load("@io_bazel_rules_docker//docker:docker.bzl", "docker_build")
3+
load("@io_bazel_rules_docker//container:container.bzl", "container_image")
44

5-
[docker_build(
5+
[container_image(
66
name = "jetty" if (mode == ":java8") else mode[1:],
77
base = "//java" + mode,
88
cmd = ["/jetty/start.jar"],

package_manager/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ Finally, in a `BUILD` file, you can access the `.deb` files for rules that might
5353
```python
5454
load("@package_bundle//file:packages.bzl", "packages")
5555

56-
docker_build(
56+
container_image(
5757
name = "python27",
5858
base = "//base:base",
5959
debs = [

0 commit comments

Comments
 (0)