Skip to content

Commit 8c52678

Browse files
committed
chore(pack-images): upgrade to new lifecycle
1 parent e3f2569 commit 8c52678

3 files changed

Lines changed: 49 additions & 6 deletions

File tree

Makefile

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,39 @@ VERSION ?= ${STACK}
44
DEV_REGISTRY ?= docker.io
55
DRYCC_REGISTRY ?= ${DEV_REGISTRY}
66

7+
ARCH ?= $(shell python3 _scripts/utils.py arch)
8+
LIFECYCLE_VERSION ?= v0.12.0-rc.1
9+
ifeq ($(ARCH),amd64)
10+
LIFECYCLE_URL = https://github.com/buildpacks/lifecycle/releases/download/$(LIFECYCLE_VERSION)/lifecycle-${LIFECYCLE_VERSION}+linux.x86-64.tgz
11+
else
12+
LIFECYCLE_URL = https://github.com/buildpacks/lifecycle/releases/download/$(LIFECYCLE_VERSION)/lifecycle-${LIFECYCLE_VERSION}+linux.${ARCH}.tgz
13+
endif
14+
STACK_RUN_IMAGE = docker.io/drycc/pack:20-linux-${ARCH}
15+
STACK_BUILD_IMAGE = docker.io/drycc/pack:20-linux-${ARCH}-build
16+
717
SHELLCHECK_PREFIX := docker run --rm -v ${CURDIR}:/workdir -w /workdir ${DRYCC_REGISTRY}/drycc/go-dev shellcheck
818
SHELL_SCRIPTS = $(shell find "buildpacks" -name '*.sh') $(shell find "rootfs" -name '*.sh') $(wildcard buildpacks/*/bin/*)
919

1020
SHELL=/bin/bash -o pipefail
1121

1222
pack:
13-
@docker build --pull -f Dockerfile.build --build-arg STACK=drycc-${STACK} --build-arg BASE_IMAGE=${DRYCC_REGISTRY}/drycc/stack-images:${STACK}-build -t ${DRYCC_REGISTRY}/drycc/pack:${VERSION}-build .
14-
@docker build --pull -f Dockerfile.run --build-arg STACK=drycc-${STACK} --build-arg BASE_IMAGE=${DRYCC_REGISTRY}/drycc/stack-images:${STACK} -t ${DRYCC_REGISTRY}/drycc/pack:${VERSION} .
23+
@docker build --pull -f Dockerfile.build \
24+
--build-arg STACK=drycc-${STACK} \
25+
--build-arg BASE_IMAGE=${DRYCC_REGISTRY}/drycc/stack-images:${STACK}-build \
26+
-t ${DRYCC_REGISTRY}/drycc/pack:${VERSION}-build .
27+
@docker build --pull -f Dockerfile.run \
28+
--build-arg STACK=drycc-${STACK} \
29+
--build-arg BASE_IMAGE=${DRYCC_REGISTRY}/drycc/stack-images:${STACK} \
30+
-t ${DRYCC_REGISTRY}/drycc/pack:${VERSION} .
1531

1632
publish-pack: pack
1733
@docker push ${DRYCC_REGISTRY}/drycc/pack:${VERSION}-build
1834
@docker push ${DRYCC_REGISTRY}/drycc/pack:${VERSION}
1935

2036
buildpack:
21-
@pack builder create ${DRYCC_REGISTRY}/drycc/buildpacks:${VERSION} --config builder.toml --pull-policy if-not-present
37+
LIFECYCLE_URL=${LIFECYCLE_URL} STACK_RUN_IMAGE=${STACK_RUN_IMAGE} STACK_BUILD_IMAGE=${STACK_BUILD_IMAGE} python3 _scripts/utils.py toml builder.toml builder.toml.${ARCH}
38+
@pack builder create ${DRYCC_REGISTRY}/drycc/buildpacks:${VERSION} --config builder.toml.${ARCH} --pull-policy if-not-present
39+
@rm -rf builder.toml.${ARCH}
2240

2341
publish-buildpack: buildpack
2442
@docker push ${DRYCC_REGISTRY}/drycc/buildpacks:${VERSION}

_scripts/utils.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import os
2+
import sys
3+
import platform
4+
5+
def toml():
6+
result = None
7+
with open(sys.argv[2]) as f:
8+
tpl = f.read()
9+
result = tpl.format(**os.environ)
10+
with open(sys.argv[3], "w") as f:
11+
f.write(result)
12+
13+
def arch():
14+
print({
15+
"armv5": "armv5",
16+
"armv6": "armv6",
17+
"aarch64": "arm64",
18+
"x86": "386",
19+
"x86_64": "amd64",
20+
"i686": "386",
21+
"i386": "386",
22+
}.get(platform.machine()))
23+
24+
if __name__ == "__main__":
25+
eval("%s()" % sys.argv[1])

builder.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
description = "Base builder for 20 stack, based on ubuntu:20.04 base image"
22

33
[lifecycle]
4-
version = "0.11.3"
4+
uri = "{LIFECYCLE_URL}"
55

66
[[buildpacks]]
77
id = "drycc/ruby"
@@ -77,5 +77,5 @@ version = "0.0.1"
7777

7878
[stack]
7979
id = "drycc-20"
80-
build-image = "docker.io/drycc/pack:20-build"
81-
run-image = "docker.io/drycc/pack:20"
80+
run-image = "{STACK_RUN_IMAGE}"
81+
build-image = "{STACK_BUILD_IMAGE}"

0 commit comments

Comments
 (0)