|
13 | 13 | # See the License for the specific language governing permissions and |
14 | 14 | # limitations under the License. |
15 | 15 |
|
16 | | - |
17 | 16 | # Prep: |
18 | 17 | # docker run --rm --privileged tonistiigi/binfmt --install all |
19 | 18 | # docker run --rm --privileged multiarch/qemu-user-static --reset -p yes |
20 | 19 | # Need to see "F" flag: cat /proc/sys/fs/binfmt_misc/qemu-* |
21 | 20 | # |
22 | 21 | # Build: |
23 | | -# docker buildx build --platform linux/s390x -t $IMAGE -f Dockerfile.bazel |
| 22 | +# docker buildx build --platform linux/s390x -t $IMAGE -f Dockerfile.s390x |
24 | 23 | # |
25 | 24 | # Push: |
26 | 25 | # docker image tag $IMAGE ghcr.io/proxy-wasm/$IMAGE |
|
33 | 32 | # --define engine=null --config=clang --test_timeout=1800 \ |
34 | 33 | # -- //test/... |
35 | 34 |
|
36 | | -# Update base image |
| 35 | +ARG BAZELISK_VERSION=v1.27.0 |
37 | 36 | ARG UBUNTU_VERSION=24.04 |
| 37 | +# Stage 1: builder for bazelisk on s390x |
| 38 | +FROM ubuntu:${UBUNTU_VERSION} AS bazelisk-builder |
| 39 | +SHELL ["/bin/bash", "-c"] |
| 40 | +WORKDIR /src |
| 41 | +ARG BAZELISK_VERSION |
| 42 | +ENV PATH="/usr/local/go/bin:$PATH" |
| 43 | +# Dépendances pour builder bazelisk |
| 44 | +ARG DEPS_BUILDER="\ |
| 45 | + build-essential \ |
| 46 | + ca-certificates \ |
| 47 | + git \ |
| 48 | + libc6-dev \ |
| 49 | + pkg-config \ |
| 50 | + tar \ |
| 51 | + wget\ |
| 52 | +" |
| 53 | +RUN apt-get update && \ |
| 54 | + DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends $DEPS_BUILDER && \ |
| 55 | + wget --progress=dot:giga https://go.dev/dl/go1.24.0.linux-s390x.tar.gz && \ |
| 56 | + tar -C /usr/local -xzf go1.24.0.linux-s390x.tar.gz && \ |
| 57 | + rm go1.24.0.linux-s390x.tar.gz && \ |
| 58 | + git clone --branch "$BAZELISK_VERSION" --single-branch --depth 1 https://github.com/bazelbuild/bazelisk.git bazelisk |
| 59 | +WORKDIR /src/bazelisk |
| 60 | +RUN go build -o /bazelisk . |
| 61 | +WORKDIR /src |
| 62 | +RUN rm -rf /src/bazelisk /src/.git /usr/local/go/pkg /usr/local/go/doc /usr/local/go/api /usr/local/go/test /usr/local/go/misc /usr/local/go/obj /usr/local/go/src && \ |
| 63 | + apt-get remove --purge -y build-essential git wget && \ |
| 64 | + apt-get autoremove -y && \ |
| 65 | + apt-get clean && \ |
| 66 | + rm -rf /var/lib/apt/lists/* |
| 67 | + |
| 68 | +# Stage 2: main build image |
38 | 69 | FROM ubuntu:${UBUNTU_VERSION} AS build |
39 | 70 |
|
40 | 71 | # Use bash for all RUN instructions |
@@ -65,11 +96,9 @@ RUN apt-get update && \ |
65 | 96 | DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends $DEPS && \ |
66 | 97 | rm -rf /var/lib/apt/lists/* |
67 | 98 |
|
68 | | -# Install bazelisk and set Bazel version |
69 | | -ARG BAZELISK_VERSION=v1.27.0 |
70 | | -RUN curl -L -o /usr/local/bin/bazelisk "https://github.com/bazelbuild/bazelisk/releases/download/${BAZELISK_VERSION}/bazelisk-linux-$(uname -m)" \ |
71 | | - && chmod +x /usr/local/bin/bazelisk \ |
72 | | - && ln -s /usr/local/bin/bazelisk /usr/local/bin/bazel |
| 99 | +# Copy bazelisk from builder |
| 100 | +COPY --from=bazelisk-builder /bazelisk /usr/local/bin/bazelisk |
| 101 | +RUN ln -s /usr/local/bin/bazelisk /usr/local/bin/bazel |
73 | 102 |
|
74 | 103 | # Set a valid working directory |
75 | 104 | WORKDIR /root |
0 commit comments