-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
30 additions
and
16 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,27 +1,41 @@ | ||
FROM golang:1.21 as build | ||
|
||
ARG BUILD_SHA | ||
|
||
FROM golang:1.21-alpine AS overlaybd_snapshotter_build | ||
WORKDIR /work | ||
RUN apk add git make | ||
RUN git clone --branch v1.0.4 https://github.com/containerd/accelerated-container-image.git | ||
RUN cd accelerated-container-image \ | ||
&& make \ | ||
&& make install | ||
|
||
FROM alpine:3.19 AS overlaybd_build | ||
WORKDIR /work | ||
RUN apk add bash cmake curl-dev e2fsprogs-dev gcc g++ gflags-dev git gtest-dev make libaio-dev libnl3-dev linux-headers openssl-dev patch pkgconf sudo zlib-dev zstd-dev | ||
RUN git clone https://github.com/superfly/overlaybd \ | ||
&& cd overlaybd \ | ||
&& git submodule update --init | ||
RUN mkdir -p overlaybd/build \ | ||
&& cd overlaybd/build \ | ||
&& cmake .. | ||
RUN cd overlaybd/build \ | ||
&& make -j$(nproc) \ | ||
&& make install | ||
|
||
FROM golang:1.21 as dockerproxy_build | ||
WORKDIR /app | ||
|
||
COPY dockerproxy . | ||
|
||
RUN GOOS=linux GARCH=amd64 CGO_ENABLED=0 go build -o dockerproxy -ldflags "-X main.gitSha=$BUILD_SHA -X main.buildTime=$(date +'%Y-%m-%dT%TZ')" | ||
RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o dockerproxy -ldflags "-X main.gitSha=$BUILD_SHA -X main.buildTime=$(date +'%Y-%m-%dT%TZ')" | ||
|
||
FROM docker:20.10.12-alpine3.15 | ||
|
||
RUN apk add bash ip6tables pigz sysstat procps lsof util-linux-misc xz curl sudo | ||
|
||
ARG BUILD_SHA | ||
RUN apk add bash ip6tables pigz sysstat procps lsof util-linux-misc xz curl sudo libcurl e2fsprogs e2fsprogs-libs libaio libnl3 libssl3 zlib zstd-libs | ||
COPY etc/docker/daemon.json /etc/docker/daemon.json | ||
|
||
COPY --from=build /app/dockerproxy /dockerproxy | ||
COPY --from=dockerproxy_build /app/dockerproxy /dockerproxy | ||
COPY --from=docker/buildx-bin:v0.7 /buildx /usr/libexec/docker/cli-plugins/docker-buildx | ||
|
||
COPY --from=overlaybd_snapshotter_build /opt/overlaybd/snapshotter /opt/overlaybd/snapshotter | ||
COPY --from=overlaybd_snapshotter_build /etc/overlaybd-snapshotter /etc/overlaybd-snapshotter | ||
COPY --from=overlaybd_build /opt/overlaybd /opt/overlaybd | ||
COPY --from=overlaybd_build /etc/overlaybd /etc/overlaybd | ||
COPY ./entrypoint ./entrypoint | ||
COPY ./docker-entrypoint.d/* ./docker-entrypoint.d/ | ||
|
||
ENV DOCKER_TMPDIR=/data/docker/tmp | ||
|
||
ENTRYPOINT ["./entrypoint"] | ||
|
||
CMD ["./dockerproxy"] |