|
1 |
| -FROM public.ecr.aws/ubuntu/ubuntu:22.04 as config |
2 |
| -RUN apt-get update && apt-get install -y jsonnet |
| 1 | +# syntax=docker/dockerfile:1 |
| 2 | + |
| 3 | +ARG BASE=public.ecr.aws/ubuntu/ubuntu:22.04 |
| 4 | + |
| 5 | +# `~` is mangled as `.` |
| 6 | +ARG KEA_VERSION=2.3.6-1.rk1.jammy |
| 7 | + |
| 8 | +### |
| 9 | + |
| 10 | +FROM --platform=$BUILDPLATFORM public.ecr.aws/docker/library/rust:1.69-slim-bullseye as build |
| 11 | +RUN rustup target add aarch64-unknown-linux-gnu |
| 12 | +RUN apt-get update \ |
| 13 | + && DEBIAN_FRONTEND=noninteractive apt-get install -y \ |
| 14 | + gcc-aarch64-linux-gnu |
| 15 | + |
| 16 | +WORKDIR /build/healthz |
| 17 | +COPY healthz/ ./ |
| 18 | + |
| 19 | +RUN --mount=type=cache,target=/usr/local/cargo/registry \ |
| 20 | + --mount=type=cache,target=/build/healthz/target \ |
| 21 | + CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc \ |
| 22 | + cargo install --path . --root /app --locked --target=aarch64-unknown-linux-gnu |
| 23 | + |
| 24 | +### |
| 25 | + |
| 26 | +FROM --platform=$BUILDPLATFORM $BASE as config |
| 27 | +RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y jsonnet |
3 | 28 | WORKDIR /app
|
4 | 29 | COPY kea-ctrl-agent.jsonnet /tmp/
|
5 | 30 | RUN jsonnet /tmp/kea-ctrl-agent.jsonnet > /app/kea-ctrl-agent.json
|
6 | 31 |
|
7 |
| -FROM public.ecr.aws/ubuntu/ubuntu:22.04 |
| 32 | +### |
| 33 | + |
| 34 | +FROM --platform=$BUILDPLATFORM $BASE as download |
| 35 | + |
| 36 | +RUN apt-get update \ |
| 37 | + && DEBIAN_FRONTEND=noninteractive apt-get install -y \ |
| 38 | + curl \ |
| 39 | + ca-certificates |
| 40 | + |
| 41 | +ARG KEA_VERSION |
| 42 | + |
| 43 | +WORKDIR /download |
| 44 | +RUN curl -SsfL --remote-name-all \ |
| 45 | + https://github.com/hanazuki/isc-kea.deb/releases/download/debian%2F2.3.6-1_rk1_jammy/{kea-admin_${KEA_VERSION}_arm64.deb,kea-common_${KEA_VERSION}_arm64.deb,kea-ctrl-agent_${KEA_VERSION}_arm64.deb,kea-dhcp4-server_${KEA_VERSION}_arm64.deb} \ |
| 46 | + https://sorah-pkg.s3.dualstack.ap-northeast-1.amazonaws.com/misc/isc-stork-agent_1.5.0.220824140136_arm64.deb |
| 47 | + |
| 48 | +RUN sha384sum -c --strict <<EOF |
| 49 | +3da15d37c3edbaf670400c4221a7d116ebc306c4c573d3f3a6b8ace2ec1fb3782194b118c37a803b6696aa0340f45b17 kea-admin_2.3.6-1.rk1.jammy_arm64.deb |
| 50 | +8d4fadc507ce3a98199dceefd71f2da689cab40aa97753bdfb0f2facff0f5c734b968d86809c666dea5f01ec35eb04ac kea-common_2.3.6-1.rk1.jammy_arm64.deb |
| 51 | +a735a6e6102defd5fadb20900fb92bbd769368c5c211be3f0f0e9ccab29d2d6e69ad65dd46fed22a016ed0b5a2e74c90 kea-ctrl-agent_2.3.6-1.rk1.jammy_arm64.deb |
| 52 | +525e1ba2c96929ce32385d4c240a43ce7c4daf96023810d167b9204ba680517e8557896d40ab1d387de996fce7a84e68 kea-dhcp4-server_2.3.6-1.rk1.jammy_arm64.deb |
| 53 | +1e8b67f2afe4404ea3091cbef14e93a23186633a3d571f9cb141d162350d2fe6235d7679e89bed5c2235433f203d706d isc-stork-agent_1.5.0.220824140136_arm64.deb |
| 54 | +EOF |
| 55 | + |
| 56 | +### |
| 57 | + |
| 58 | +FROM $BASE |
8 | 59 |
|
9 | 60 | RUN mkdir -p /run/kea /app
|
10 | 61 | VOLUME /run/kea
|
11 | 62 |
|
12 |
| -RUN apt-get update && apt-get install -y \ |
| 63 | +ARG KEA_VERSION |
| 64 | + |
| 65 | +RUN --mount=type=bind,from=download,src=/download,dst=/download \ |
| 66 | + apt-get update \ |
| 67 | + && DEBIAN_FRONTEND=noninteractive apt-get install -y \ |
13 | 68 | ca-certificates \
|
14 | 69 | dumb-init \
|
15 | 70 | ruby3.0 \
|
16 | 71 | iproute2 \
|
17 |
| - curl \ |
| 72 | + /download/*.deb \ |
18 | 73 | && apt-get clean && rm -rf /var/lib/apt/lists/*
|
19 | 74 |
|
20 |
| -ARG KEA_VERSION=2.0.2-1 |
21 |
| -RUN apt-get update && apt-get install -y --no-install-recommends \ |
22 |
| - kea-dhcp4-server=${KEA_VERSION} \ |
23 |
| - kea-admin=${KEA_VERSION} \ |
24 |
| - kea-ctrl-agent=${KEA_VERSION} \ |
25 |
| - && apt-get clean && rm -rf /var/lib/apt/lists/* |
26 |
| - |
27 |
| -RUN curl -Ssf -o /tmp/stork.deb 'https://sorah-pkg.s3.dualstack.ap-northeast-1.amazonaws.com/misc/isc-stork-agent_1.5.0.220824140136_arm64.deb' \ |
28 |
| - && ( echo '1e8b67f2afe4404ea3091cbef14e93a23186633a3d571f9cb141d162350d2fe6235d7679e89bed5c2235433f203d706d /tmp/stork.deb' | sha384sum -c --strict ) \ |
29 |
| - && dpkg -i /tmp/stork.deb && rm /tmp/stork.deb |
30 |
| -COPY healthz/target/aarch64-unknown-linux-gnu/release/healthz /app/healthzd |
31 |
| - |
| 75 | +COPY --from=build /app/bin/healthz /app/healthzd |
32 | 76 | COPY run.sh /app/run.sh
|
33 | 77 | COPY choose_dhcp_server_id.rb /app/choose_dhcp_server_id.rb
|
34 | 78 | COPY --from=config /app/kea-ctrl-agent.json /app/kea-ctrl-agent.json
|
35 | 79 |
|
36 |
| -RUN kea-ctrl-agent -t /app/kea-ctrl-agent.json |
| 80 | +RUN kea-ctrl-agent -t /app/kea-ctrl-agent.json |
37 | 81 |
|
38 | 82 | CMD /app/run.sh
|
0 commit comments