Creating a Docker Image with Utimaco Library and Utilities

  1. Go to the path /root/go/src/github.com/hyperledger/fabric-ca.

  2. Create one directory with name utimaco_utilities on path /root/go/src/github.com/hyperledger/fabric-ca and copy below files inside this directory.

›_ Console

# cp /etc/utimaco/cs_pkcs11_R3.cfg 

/root/go/src/github.com/hyperledger/fabric-ca/utimaco_utilities/  

# cp /opt/utimaco/lib/libcs_pkcs11_R3.so 

/root/go/src/github.com/hyperledger/fabric-ca/utimaco_utilities/  

# cp /opt/utimaco/bin/p11tool2 /root/go/src/github.com/hyperledger/fabricca/utimaco_utilities  

# cp /opt/utimaco/bin/ADMIN.key 

/root/go/src/github.com/hyperledger/fabric-ca/utimaco_utilities  

# cp /opt/utimaco/bin/csadm /root/go/src/github.com/hyperledger/fabricca/utimaco_utilities 
image-3285090566-1.jpg

Copy library and configuration files

  1. Verify that files are copied at /root/go/src/github.com/hyperledger/fabric-ca/utimaco_utilities.

›_ Console

# cd /root/go/src/github.com/hyperledger/fabric-ca/utimaco_utilities 
root@Fabric-CA:~/go/src/github.com/hyperledger/fabricca/utimaco_utilities# ll 

image-3285090566-2.jpg

List files

  1. Create a new file Dockerfile to build a Fabric image.

›_ Console

# cd /root/go/src/github.com/hyperledger/fabric-ca 

# vim Dockerfile 
  1. Copy the following lines into the file (Dockerfile).

›_ Console

ARG GO_VER 

ARG ALPINE_VER 

FROM ubuntu:focal 

ARG GO_LDFLAGS 

ARG GO_TAGS 

RUN apt-get update 

RUN apt-get install -y curl gcc git musl-dev 

RUN rm -rf /var/lib/apt/lists/* ENV GOLANG_VERSION 1.18.3 

RUN curl -sSL 

https://storage.googleapis.com/golang/go$GOLANG_VERSION.linux-amd64.tar.gz 

| tar -v -C /usr/local -xz 

ENV PATH /usr/local/go/bin:$PATH 

RUN mkdir -p /go/src /go/bin && chmod -R 777 /go 

ENV GOROOT /usr/local/go 

ENV GOPATH /go 

ENV PATH /go/bin:$PATH 

RUN mkdir -p /etc/utimaco/ 

RUN mkdir -p /opt/utimaco/bin 

RUN mkdir -p /opt/utimaco/lib 

COPY /utimaco_utilities/cs_pkcs11_R3.cfg /etc/utimaco/ 

COPY /utimaco_utilities/libcs_pkcs11_R3.so /opt/utimaco/lib 

COPY /utimaco_utilities/p11tool2 /opt/utimaco/bin 

COPY /utimaco_utilities/ADMIN.key /opt/utimaco/bin 

COPY /utimaco_utilities/csadm /opt/utimaco/bin 
RUN chmod -R 550 /opt/utimaco 

RUN chmod -R 600 /etc/utimaco 

ADD . $GOPATH/src/github.com/hyperledger/fabric-ca 

RUN go install -tags "${GO_TAGS}" -ldflags "${GO_LDFLAGS}" \ github.com/hyperledger/fabric-ca/cmd/fabric-ca-server \ && go install -tags "${GO_TAGS}" -ldflags "${GO_LDFLAGS}" \ github.com/hyperledger/fabric-ca/cmd/fabric-ca-client ENV FABRIC_CA_HOME /etc/hyperledger/fabric-ca-server 

EXPOSE 7055 

CMD fabric-ca-server start -b admin:adminpw