|
1 |
| -##################################### |
2 |
| -FROM golang:1.19.12-bullseye AS lotus-builder |
3 |
| -MAINTAINER Lotus Development Team |
| 1 | +ARG RUNTIME_TAG=v1.14.0 |
4 | 2 |
|
5 |
| -RUN apt-get update && apt-get install -y ca-certificates build-essential clang ocl-icd-opencl-dev ocl-icd-libopencl1 jq libhwloc-dev |
| 3 | +FROM filvenus/venus-buildenv:v1.14.0 AS buildenv |
6 | 4 |
|
7 |
| -ENV XDG_CACHE_HOME="/tmp" |
| 5 | +WORKDIR /build |
8 | 6 |
|
9 |
| -### taken from https://github.com/rust-lang/docker-rust/blob/master/1.63.0/buster/Dockerfile |
10 |
| -ENV RUSTUP_HOME=/usr/local/rustup \ |
11 |
| - CARGO_HOME=/usr/local/cargo \ |
12 |
| - PATH=/usr/local/cargo/bin:$PATH \ |
13 |
| - RUST_VERSION=1.63.0 |
| 7 | +ENV GOPROXY="https://goproxy.cn,direct" |
14 | 8 |
|
15 |
| -RUN set -eux; \ |
16 |
| - dpkgArch="$(dpkg --print-architecture)"; \ |
17 |
| - case "${dpkgArch##*-}" in \ |
18 |
| - amd64) rustArch='x86_64-unknown-linux-gnu'; rustupSha256='5cc9ffd1026e82e7fb2eec2121ad71f4b0f044e88bca39207b3f6b769aaa799c' ;; \ |
19 |
| - arm64) rustArch='aarch64-unknown-linux-gnu'; rustupSha256='e189948e396d47254103a49c987e7fb0e5dd8e34b200aa4481ecc4b8e41fb929' ;; \ |
20 |
| - *) echo >&2 "unsupported architecture: ${dpkgArch}"; exit 1 ;; \ |
21 |
| - esac; \ |
22 |
| - url="https://static.rust-lang.org/rustup/archive/1.25.1/${rustArch}/rustup-init"; \ |
23 |
| - wget "$url"; \ |
24 |
| - echo "${rustupSha256} *rustup-init" | sha256sum -c -; \ |
25 |
| - chmod +x rustup-init; \ |
26 |
| - ./rustup-init -y --no-modify-path --profile minimal --default-toolchain $RUST_VERSION --default-host ${rustArch}; \ |
27 |
| - rm rustup-init; \ |
28 |
| - chmod -R a+w $RUSTUP_HOME $CARGO_HOME; \ |
29 |
| - rustup --version; \ |
30 |
| - cargo --version; \ |
31 |
| - rustc --version; |
| 9 | +COPY ./go.mod /build/ |
| 10 | +COPY ./exter[n] ./go.mod /build/extern/ |
| 11 | +RUN go mod download |
32 | 12 |
|
33 |
| -COPY ./ /opt/filecoin |
34 |
| -WORKDIR /opt/filecoin |
| 13 | +COPY . /build |
| 14 | +RUN make dist-clean |
| 15 | +RUN make deps |
| 16 | +RUN make force |
35 | 17 |
|
36 |
| -RUN scripts/docker-git-state-check.sh |
| 18 | +FROM filvenus/venus-runtime:${RUNTIME_TAG} |
37 | 19 |
|
38 |
| -### make configurable filecoin-ffi build |
39 |
| -ARG FFI_BUILD_FROM_SOURCE=0 |
40 |
| -ENV FFI_BUILD_FROM_SOURCE=${FFI_BUILD_FROM_SOURCE} |
| 20 | +ARG BUILD_TARGET= |
| 21 | +ENV VENUS_COMPONENT=${BUILD_TARGET} |
41 | 22 |
|
42 |
| -RUN make clean deps |
| 23 | +# copy the app from build env |
| 24 | +COPY --from=buildenv /build/lotus /lotus |
| 25 | +COPY --from=buildenv /build/lotus-miner /lotus-miner |
| 26 | +COPY --from=buildenv /build/lotus-seed /lotus-seed |
43 | 27 |
|
44 |
| -ARG RUSTFLAGS="" |
45 |
| -ARG GOFLAGS="" |
46 |
| - |
47 |
| -RUN make buildall |
48 |
| - |
49 |
| -##################################### |
50 |
| -FROM ubuntu:20.04 AS lotus-base |
51 |
| -MAINTAINER Lotus Development Team |
52 |
| - |
53 |
| -# Base resources |
54 |
| -COPY --from=lotus-builder /etc/ssl/certs /etc/ssl/certs |
55 |
| -COPY --from=lotus-builder /lib/*/libdl.so.2 /lib/ |
56 |
| -COPY --from=lotus-builder /lib/*/librt.so.1 /lib/ |
57 |
| -COPY --from=lotus-builder /lib/*/libgcc_s.so.1 /lib/ |
58 |
| -COPY --from=lotus-builder /lib/*/libutil.so.1 /lib/ |
59 |
| -COPY --from=lotus-builder /usr/lib/*/libltdl.so.7 /lib/ |
60 |
| -COPY --from=lotus-builder /usr/lib/*/libnuma.so.1 /lib/ |
61 |
| -COPY --from=lotus-builder /usr/lib/*/libhwloc.so.* /lib/ |
62 |
| -COPY --from=lotus-builder /usr/lib/*/libOpenCL.so.1 /lib/ |
63 |
| - |
64 |
| -RUN useradd -r -u 532 -U fc \ |
65 |
| - && mkdir -p /etc/OpenCL/vendors \ |
66 |
| - && echo "libnvidia-opencl.so.1" > /etc/OpenCL/vendors/nvidia.icd |
67 |
| - |
68 |
| -##################################### |
69 |
| -FROM lotus-base AS lotus |
70 |
| -MAINTAINER Lotus Development Team |
71 |
| - |
72 |
| -COPY --from=lotus-builder /opt/filecoin/lotus /usr/local/bin/ |
73 |
| -COPY --from=lotus-builder /opt/filecoin/lotus-shed /usr/local/bin/ |
74 |
| -COPY scripts/docker-lotus-entrypoint.sh / |
75 |
| - |
76 |
| -ARG DOCKER_LOTUS_IMPORT_SNAPSHOT https://snapshots.mainnet.filops.net/minimal/latest |
77 |
| -ENV DOCKER_LOTUS_IMPORT_SNAPSHOT ${DOCKER_LOTUS_IMPORT_SNAPSHOT} |
78 |
| -ENV FILECOIN_PARAMETER_CACHE /var/tmp/filecoin-proof-parameters |
79 |
| -ENV LOTUS_PATH /var/lib/lotus |
80 |
| -ENV DOCKER_LOTUS_IMPORT_WALLET "" |
81 |
| - |
82 |
| -RUN mkdir /var/lib/lotus /var/tmp/filecoin-proof-parameters |
83 |
| -RUN chown fc: /var/lib/lotus /var/tmp/filecoin-proof-parameters |
84 |
| - |
85 |
| -VOLUME /var/lib/lotus |
86 |
| -VOLUME /var/tmp/filecoin-proof-parameters |
87 |
| - |
88 |
| -USER fc |
89 |
| - |
90 |
| -EXPOSE 1234 |
91 |
| - |
92 |
| -ENTRYPOINT ["/docker-lotus-entrypoint.sh"] |
93 |
| - |
94 |
| -CMD ["-help"] |
95 |
| - |
96 |
| -##################################### |
97 |
| -FROM lotus-base AS lotus-all-in-one |
98 |
| - |
99 |
| -ENV FILECOIN_PARAMETER_CACHE /var/tmp/filecoin-proof-parameters |
100 |
| -ENV LOTUS_MINER_PATH /var/lib/lotus-miner |
101 |
| -ENV LOTUS_PATH /var/lib/lotus |
102 |
| -ENV LOTUS_WORKER_PATH /var/lib/lotus-worker |
103 |
| -ENV WALLET_PATH /var/lib/lotus-wallet |
104 |
| - |
105 |
| -COPY --from=lotus-builder /opt/filecoin/lotus /usr/local/bin/ |
106 |
| -COPY --from=lotus-builder /opt/filecoin/lotus-seed /usr/local/bin/ |
107 |
| -COPY --from=lotus-builder /opt/filecoin/lotus-shed /usr/local/bin/ |
108 |
| -COPY --from=lotus-builder /opt/filecoin/lotus-wallet /usr/local/bin/ |
109 |
| -COPY --from=lotus-builder /opt/filecoin/lotus-gateway /usr/local/bin/ |
110 |
| -COPY --from=lotus-builder /opt/filecoin/lotus-miner /usr/local/bin/ |
111 |
| -COPY --from=lotus-builder /opt/filecoin/lotus-worker /usr/local/bin/ |
112 |
| -COPY --from=lotus-builder /opt/filecoin/lotus-stats /usr/local/bin/ |
113 |
| -COPY --from=lotus-builder /opt/filecoin/lotus-fountain /usr/local/bin/ |
114 |
| - |
115 |
| -RUN mkdir /var/tmp/filecoin-proof-parameters |
116 |
| -RUN mkdir /var/lib/lotus |
117 |
| -RUN mkdir /var/lib/lotus-miner |
118 |
| -RUN mkdir /var/lib/lotus-worker |
119 |
| -RUN mkdir /var/lib/lotus-wallet |
120 |
| -RUN chown fc: /var/tmp/filecoin-proof-parameters |
121 |
| -RUN chown fc: /var/lib/lotus |
122 |
| -RUN chown fc: /var/lib/lotus-miner |
123 |
| -RUN chown fc: /var/lib/lotus-worker |
124 |
| -RUN chown fc: /var/lib/lotus-wallet |
125 |
| - |
126 |
| - |
127 |
| -VOLUME /var/tmp/filecoin-proof-parameters |
128 |
| -VOLUME /var/lib/lotus |
129 |
| -VOLUME /var/lib/lotus-miner |
130 |
| -VOLUME /var/lib/lotus-worker |
131 |
| -VOLUME /var/lib/lotus-wallet |
132 |
| - |
133 |
| -EXPOSE 1234 |
134 |
| -EXPOSE 2345 |
135 |
| -EXPOSE 3456 |
136 |
| -EXPOSE 1777 |
| 28 | +# ENTRYPOINT ["/script/init.sh"] |
0 commit comments