forked from bifrost-io/bifrost
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile
72 lines (53 loc) · 2.01 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# Copyright 2019 Liebi Technologies.
# This file is part of Bifrost.
# Bifrost is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# Bifrost is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with Bifrost. If not, see <http:#www.gnu.org/licenses/>.
FROM ubuntu:18.04 as builder
LABEL description="The first stage for building a release bifrost binary."
ARG PROFILE=release
WORKDIR /src
ENV DEBIAN_FRONTEND noninteractive
COPY . /src
RUN apt-get update && \
apt-get dist-upgrade -y && \
apt-get install -y cmake pkg-config libssl-dev git clang curl apt-utils
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y && \
export PATH="$PATH:$HOME/.cargo/bin" && \
rustup toolchain install nightly && \
rustup target add wasm32-unknown-unknown --toolchain nightly && \
rustup default nightly && \
rustup default stable && \
cargo build "--$PROFILE"
# ===== SECOND STAGE ======
FROM ubuntu:18.04
LABEL description="The second stage for configuring the image."
ARG PROFILE=release
WORKDIR /bifrost
RUN apt-get update && \
apt-get dist-upgrade -y && \
apt install -y openssl libssl-dev
RUN rm -rf /usr/share/* && \
useradd -m -u 1000 -U -s /bin/sh -d /bifrost bifrost && \
mkdir -p /bifrost/.local && \
chown -R bifrost:bifrost /bifrost/.local
COPY --from=builder /src/target/$PROFILE/bifrost /usr/local/bin
# checks
RUN ldd /usr/local/bin/bifrost && \
/usr/local/bin/bifrost --version
# Shrinking
RUN rm -rf /usr/lib/python* && \
rm -rf /usr/bin /usr/sbin /usr/share/man && \
rm -rf /src
USER bifrost
EXPOSE 30333 9933 9944
VOLUME ["/bifrost"]
CMD ["/usr/local/bin/bifrost"]
ENV DEBIAN_FRONTEND teletype