|
1 | | -ARG COMPOSE_TAG="latest" |
2 | | -ARG COMPOSE_ALPINE_TAG="alpine" |
| 1 | +FROM ghcr.io/linuxserver/baseimage-alpine:3.15 as buildstage |
3 | 2 |
|
4 | | -FROM ghcr.io/linuxserver/docker-compose:amd64-${COMPOSE_TAG} as compose-amd64 |
5 | | -FROM ghcr.io/linuxserver/docker-compose:arm32v7-${COMPOSE_TAG} as compose-arm32 |
6 | | -FROM ghcr.io/linuxserver/docker-compose:arm64v8-${COMPOSE_TAG} as compose-arm64 |
7 | | -FROM ghcr.io/linuxserver/docker-compose:amd64-${COMPOSE_ALPINE_TAG} as compose-alpine-amd64 |
8 | | -FROM ghcr.io/linuxserver/docker-compose:arm32v7-${COMPOSE_ALPINE_TAG} as compose-alpine-arm32 |
9 | | -FROM ghcr.io/linuxserver/docker-compose:arm64v8-${COMPOSE_ALPINE_TAG} as compose-alpine-arm64 |
| 3 | +ARG DOCKER_RELEASE |
| 4 | +ARG COMPOSE_RELEASE |
10 | 5 |
|
11 | | -FROM ghcr.io/linuxserver/baseimage-alpine:3.12 as buildstage |
| 6 | +RUN \ |
| 7 | + echo "**** install packages ****" && \ |
| 8 | + apk add --no-cache \ |
| 9 | + curl \ |
| 10 | + git \ |
| 11 | + go && \ |
| 12 | + echo "**** retrieve latest docker version ****" && \ |
| 13 | + if [ -z ${DOCKER_RELEASE+x} ]; then \ |
| 14 | + DOCKER_RELEASE=$(curl -sX GET "https://api.github.com/repos/moby/moby/releases/latest" \ |
| 15 | + | awk '/tag_name/{print $4;exit}' FS='[""]' \ |
| 16 | + | sed 's|^v||'); \ |
| 17 | + fi && \ |
| 18 | + echo "**** grab docker ****" && \ |
| 19 | + mkdir -p \ |
| 20 | + /root-layer/docker-bins \ |
| 21 | + /tmp/docker_x86_64 \ |
| 22 | + /tmp/docker_armv7l \ |
| 23 | + /tmp/docker_aarch64 && \ |
| 24 | + curl -fo \ |
| 25 | + /tmp/docker_x86_64.tgz -L \ |
| 26 | + "https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKER_RELEASE}.tgz" && \ |
| 27 | + tar xf \ |
| 28 | + /tmp/docker_x86_64.tgz -C \ |
| 29 | + /tmp/docker_x86_64 --strip-components=1 && \ |
| 30 | + cp /tmp/docker_x86_64/docker /root-layer/docker-bins/docker_x86_64 && \ |
| 31 | + curl -fo \ |
| 32 | + /tmp/docker_armv7l.tgz -L \ |
| 33 | + "https://download.docker.com/linux/static/stable/armhf/docker-${DOCKER_RELEASE}.tgz" && \ |
| 34 | + tar xf \ |
| 35 | + /tmp/docker_armv7l.tgz -C \ |
| 36 | + /tmp/docker_armv7l --strip-components=1 && \ |
| 37 | + cp /tmp/docker_armv7l/docker /root-layer/docker-bins/docker_armv7l && \ |
| 38 | + curl -fo \ |
| 39 | + /tmp/docker_aarch64.tgz -L \ |
| 40 | + "https://download.docker.com/linux/static/stable/aarch64/docker-${DOCKER_RELEASE}.tgz" && \ |
| 41 | + tar xf \ |
| 42 | + /tmp/docker_aarch64.tgz -C \ |
| 43 | + /tmp/docker_aarch64 --strip-components=1 && \ |
| 44 | + cp /tmp/docker_aarch64/docker /root-layer/docker-bins/docker_aarch64 && \ |
| 45 | + echo "**** retrieve latest compose version ****" && \ |
| 46 | + if [ -z ${COMPOSE_RELEASE+x} ]; then \ |
| 47 | + COMPOSE_RELEASE=$(curl -sX GET "https://api.github.com/repos/docker/compose/releases/latest" \ |
| 48 | + | awk '/tag_name/{print $4;exit}' FS='[""]' \ |
| 49 | + | sed 's|^v||'); \ |
| 50 | + fi && \ |
| 51 | + echo "**** grab compose ****" && \ |
| 52 | + curl -fo \ |
| 53 | + /root-layer/docker-bins/docker-compose_x86_64 -L \ |
| 54 | + "https://github.com/docker/compose/releases/download/v${COMPOSE_RELEASE}/docker-compose-linux-x86_64" && \ |
| 55 | + curl -fo \ |
| 56 | + /root-layer/docker-bins/docker-compose_armv7l -L \ |
| 57 | + "https://github.com/docker/compose/releases/download/v${COMPOSE_RELEASE}/docker-compose-linux-armv7" && \ |
| 58 | + curl -fo \ |
| 59 | + /root-layer/docker-bins/docker-compose_aarch64 -L \ |
| 60 | + "https://github.com/docker/compose/releases/download/v${COMPOSE_RELEASE}/docker-compose-linux-aarch64" && \ |
| 61 | + echo "**** retrieve latest compose switch version ****" && \ |
| 62 | + if [ -z ${SWITCH_RELEASE+x} ]; then \ |
| 63 | + SWITCH_RELEASE=$(curl -sX GET "https://api.github.com/repos/docker/compose-switch/releases/latest" \ |
| 64 | + | awk '/tag_name/{print $4;exit}' FS='[""]' \ |
| 65 | + | sed 's|^v||'); \ |
| 66 | + fi && \ |
| 67 | + echo "**** grab compose switch ****" && \ |
| 68 | + curl -fo \ |
| 69 | + /root-layer/docker-bins/compose-switch_x86_64 -L \ |
| 70 | + "https://github.com/docker/compose-switch/releases/download/v${SWITCH_RELEASE}/docker-compose-linux-amd64" && \ |
| 71 | + curl -fo \ |
| 72 | + /root-layer/docker-bins/compose-switch_aarch64 -L \ |
| 73 | + "https://github.com/docker/compose-switch/releases/download/v${SWITCH_RELEASE}/docker-compose-linux-arm64" && \ |
| 74 | + echo "**** compile compose switch on armhf ****" && \ |
| 75 | + curl -fo \ |
| 76 | + /tmp/compose-switch.tar.gz -L \ |
| 77 | + "https://github.com/docker/compose-switch/archive/refs/tags/v${SWITCH_RELEASE}.tar.gz" && \ |
| 78 | + mkdir -p /tmp/compose-switch && \ |
| 79 | + tar xf \ |
| 80 | + /tmp/compose-switch.tar.gz -C \ |
| 81 | + /tmp/compose-switch --strip-components=1 && \ |
| 82 | + cd /tmp/compose-switch && \ |
| 83 | + CGO_ENABLED=0 GOOS=linux GOARCH=arm go build -ldflags="-s -w -X github.com/docker/compose-switch/internal.Version=${SWITCH_RELEASE}" -o /root-layer/docker-bins/compose-switch_armv7l ./main.go && \ |
| 84 | + chmod +x /root-layer/docker-bins/* && \ |
| 85 | + rm -rf /tmp/* |
12 | 86 |
|
13 | | -COPY --from=compose-amd64 /usr/local/bin/docker-compose /root-layer/docker-compose-ubuntu/docker-compose_x86_64 |
14 | | -COPY --from=compose-amd64 /usr/local/bin/docker /root-layer/docker-compose-ubuntu/docker_x86_64 |
15 | | -COPY --from=compose-arm32 /usr/local/bin/docker-compose /root-layer/docker-compose-ubuntu/docker-compose_armv7l |
16 | | -COPY --from=compose-arm32 /usr/local/bin/docker /root-layer/docker-compose-ubuntu/docker_armv7l |
17 | | -COPY --from=compose-arm64 /usr/local/bin/docker-compose /root-layer/docker-compose-ubuntu/docker-compose_aarch64 |
18 | | -COPY --from=compose-arm64 /usr/local/bin/docker /root-layer/docker-compose-ubuntu/docker_aarch64 |
19 | | -COPY --from=compose-alpine-amd64 /usr/local/bin/docker-compose /root-layer/docker-compose-alpine/docker-compose_x86_64 |
20 | | -COPY --from=compose-alpine-amd64 /usr/local/bin/docker /root-layer/docker-compose-alpine/docker_x86_64 |
21 | | -COPY --from=compose-alpine-arm32 /usr/local/bin/docker-compose /root-layer/docker-compose-alpine/docker-compose_armv7l |
22 | | -COPY --from=compose-alpine-arm32 /usr/local/bin/docker /root-layer/docker-compose-alpine/docker_armv7l |
23 | | -COPY --from=compose-alpine-arm64 /usr/local/bin/docker-compose /root-layer/docker-compose-alpine/docker-compose_aarch64 |
24 | | -COPY --from=compose-alpine-arm64 /usr/local/bin/docker /root-layer/docker-compose-alpine/docker_aarch64 |
25 | 87 | COPY root/ /root-layer/ |
26 | 88 |
|
27 | 89 | # runtime stage |
|
0 commit comments