github.com/braveheart12/insolar-09-08-19@v0.8.7/docker/Dockerfile (about)

     1  #                             BUILDER CONTAINER
     2  FROM golang:1.11.5-alpine3.9 AS insolard-builder
     3  MAINTAINER eugene.blikh@insolar.io
     4  
     5  RUN set -x && \
     6          mkdir -p /opt/bin /opt/config /opt/tmp /opt/log && \
     7          apk update     && \
     8          apk add --no-cache --virtual /opt/.build-deps \
     9              git           \
    10              make          \
    11              alpine-sdk    \
    12              bash
    13  
    14  COPY [ "/docker/genconfig/genconfig.go", \
    15         "/opt/tmp/" ]
    16  
    17  COPY . /go/src/github.com/insolar/insolar
    18  WORKDIR /go/src/github.com/insolar/insolar
    19  
    20  RUN set -x && \
    21          : "--------- insolard bulding --------------" && \
    22          : 'cd "/go/src/github.com/insolar/insolar"' && \
    23          make install-deps ensure && \
    24          make insolar insolard benchmark apirequester && \
    25          cp bin/insolar bin/insolard bin/benchmark bin/apirequester /opt/bin && \
    26          : "--------- helper utilities --------------" && \
    27          go get gopkg.in/yaml.v2 && \
    28          go build -o /opt/bin/genconfig   /opt/tmp/genconfig.go
    29  
    30  #                             INSOLARD CONTAINER
    31  FROM alpine:3.9 AS insolard
    32  MAINTAINER eugene.blikh@insolar.io
    33  
    34  RUN set -x && \
    35          mkdir -p /var/log /opt/bin /etc/insolar /var/lib/insolar && \
    36          apk add --no-cache --virtual /opt/.runtime-deps \
    37              bash    \
    38              curl
    39  
    40  COPY [ "/docker/insolard.yaml.default", "/opt/tmp/" ]
    41  COPY [ "/docker/healthcheck.sh", "/opt/bin/" ]
    42  
    43  COPY --from=insolard-builder        \
    44          [ "/opt/bin/insolar",       \
    45            "/opt/bin/insolard",      \
    46            "/opt/bin/benchmark",     \
    47            "/opt/bin/apirequester",  \
    48            "/opt/bin/genconfig",     \
    49            "/opt/bin/"]
    50  COPY docker/insolard-entrypoint.sh /opt/bin/docker-entrypoint.sh
    51  
    52  EXPOSE 7900 7901 8001 18182 19191
    53  HEALTHCHECK --start-period=5m --interval=1m --timeout=30s --retries=5 \
    54      CMD [ "/opt/bin/healthcheck.sh" ]
    55  VOLUME [ "/etc/insolar", "/var/lib/insolar" ]
    56  
    57  ENTRYPOINT [ "/opt/bin/docker-entrypoint.sh"  ]
    58  CMD []
    59  
    60  #                               GENESIS BUILDER
    61  FROM insolard-builder AS insolard-genesis-builder
    62  MAINTAINER ivan.serezhkin@insolar.io
    63  
    64  WORKDIR /opt
    65  RUN set -x && \
    66          cp -rf /go/src/github.com/insolar/insolar/keys /opt || true && \
    67          /go/src/github.com/insolar/insolar/scripts/build/genesis/genesis.sh
    68  
    69  #                              GENESIS CONTAINER
    70  FROM alpine:3.9 AS genesis
    71  MAINTAINER ivan.serezhkin@insolar.io
    72  
    73  RUN mkdir -p /opt/genesis
    74  COPY --from=insolard-genesis-builder    \
    75          [ "/opt/data.tgz",              \
    76            "/opt/keys.tgz",              \
    77            "/opt/genesis/" ]
    78  VOLUME [ "/opt/output" ]
    79  CMD ['cp', '/opt/genesis', '/opt/output/genesis']
    80  
    81  #                             INSGORUND CONTAINER
    82  FROM alpine:3.9 AS insgorund
    83  MAINTAINER ivan.serezhkin@insolar.io
    84  
    85  RUN set -x && \
    86          mkdir -p /var/log /opt/bin /tmp/insgorund /opt/insgorund && \
    87          apk add --no-cache --virtual /opt/.runtime-deps \
    88              bash    \
    89              curl
    90  
    91  COPY --from=insolard-genesis-builder /opt/bin/insgorund /opt/bin/insgorund
    92  COPY docker/insgorund-entrypoint.sh /opt/bin/docker-entrypoint.sh
    93  
    94  EXPOSE 7777 8002
    95  
    96  ENTRYPOINT [ "/opt/bin/docker-entrypoint.sh" ]
    97  CMD []