github.com/hyperledger/fabric-ca@v2.0.0-alpha.0.20201120210307-7b4f34729db1+incompatible/images/fabric-ca-fvt/Dockerfile (about)

     1  #
     2  # Copyright IBM Corp. All Rights Reserved.
     3  #
     4  # SPDX-License-Identifier: Apache-2.0
     5  #
     6  ARG GO_VER
     7  FROM golang:${GO_VER}-buster as fabric-ca-builder
     8  ARG GO_LDFLAGS
     9  ARG GO_TAGS
    10  
    11  ADD . $GOPATH/src/github.com/hyperledger/fabric-ca
    12  WORKDIR /build/fabric-ca
    13  RUN go build -tags "${GO_TAGS}" -ldflags "${GO_LDFLAGS}" \
    14  	-o /usr/local/bin/fabric-ca-server \
    15  	github.com/hyperledger/fabric-ca/cmd/fabric-ca-server \
    16  	&& go build -tags "${GO_TAGS}" -ldflags "${GO_LDFLAGS}" \
    17  	-o /usr/local/bin/fabric-ca-client \
    18  	github.com/hyperledger/fabric-ca/cmd/fabric-ca-client;
    19  
    20  FROM debian:buster-20190910-slim
    21  ARG PG_VER
    22  
    23  ENV PATH="/usr/local/go/bin/:${PATH}" \
    24      DEBIAN_FRONTEND="noninteractive" \
    25      GOPATH="/opt/gopath" \
    26      PGDATA="/usr/local/pgsql/data/" \
    27      PGUSER="postgres" \
    28      PGPASSWORD="postgres" \
    29      PGSSLCERT="/etc/hyperledger/fabric-ca/FabricTlsClientEEcert.pem" \
    30      PGSSLKEY="/etc/hyperledger/fabric-ca/FabricTlsClientEEkey.pem" \
    31      PGVER=${PG_VER} \
    32      HOSTADDR="127.0.0.1" \
    33      LDAPPORT="389" \
    34      LDAPUSER="admin" \
    35      LDAPPASWD="adminpw" \
    36      FABRIC_CA_DATA=/etc/hyperledger/fabric-ca \
    37      TLS_BUNDLE=FabricTlsPkiBundle.pem \
    38      TLS_SERVER_CERT=FabricTlsServerEEcert.pem \
    39      TLS_SERVER_KEY=FabricTlsServerEEkey.pem \
    40      TLS_CLIENT_CERT=FabricTlsClientEEcert.pem \
    41      TLS_CLIENT_KEY=FabricTlsClientEEkey.pem \
    42      MYSQLDATA=/var/lib/mysql
    43  
    44  RUN apt-get clean && apt-get update && apt-get install openssl -y
    45  
    46  # setup scripts for slapd, postgres, mysql, and openssl
    47  COPY ./images/fabric-ca-fvt/payload ${FABRIC_CA_DATA}
    48  RUN chmod +x ${FABRIC_CA_DATA}/*sh
    49  RUN cd ${FABRIC_CA_DATA}
    50  RUN $FABRIC_CA_DATA/tls_pki.sh
    51  RUN chmod 600 ${FABRIC_CA_DATA}/${TLS_SERVER_KEY}
    52  RUN chmod 600 ${FABRIC_CA_DATA}/${TLS_CLIENT_KEY}
    53  
    54  # Avoid ERROR:
    55  #   invoke-rc.d: policy-rc.d denied execution of start.
    56  RUN echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d
    57  
    58  RUN ${FABRIC_CA_DATA}/system_update.sh
    59  RUN ${FABRIC_CA_DATA}/postgres_setup.sh
    60  RUN ${FABRIC_CA_DATA}/slapd_setup.sh
    61  RUN ${FABRIC_CA_DATA}/mysql_setup.sh
    62  
    63  COPY --from=fabric-ca-builder /usr/local/go /usr/local
    64  
    65  # Install fabric-ca dependencies
    66  RUN go get github.com/go-sql-driver/mysql
    67  RUN go get github.com/lib/pq
    68  
    69  # Add docker-built execs for (potentially) alternative architecture
    70  COPY --from=fabric-ca-builder /usr/local/bin /usr/local/bin
    71  
    72  WORKDIR ${GOPATH}/src/github.com/hyperledger/fabric-ca
    73  RUN cp ${FABRIC_CA_DATA}/start.sh /
    74  ENTRYPOINT [ "/start.sh" ]
    75  CMD ["scripts/run_fvt_tests"]