fabric-baseimage主要內容
fabric-baseimage主要內容
fabric-baseimage主要是build出三個基本image(baseos, basejvm, baseimage),還包括三個dependent-images(couchdb, kafka, zookeeper)。
這裡我們不討論dependent-images,只關注三個基本image,即baseos, basejvm, baseimage
這三個基本images是繼承關係:
- baseos是最基礎的,基本上只包括各個不同平臺os image的一個wrapper。
- basejvm是baseos的擴充套件,增加了JDK。
- baseimage是basejvm的擴充套件,增加了一些庫和工具,例如curl, make, g++, golang, nodejs, python等。
baseos
基於指定的os image更新到最新庫版本。
然後安裝wget工具,因為wget在後面的image安裝中會被用到。
$ cat config/baseos/Dockerfile.in FROM _DOCKER_BASE_# defined in Makefile: DOCKER_BASE_amd64=ubuntu:xenial COPY scripts /tmp/scripts RUN cd /tmp/scripts && \ common/init.sh && \# update to latest using apt-get docker/init.sh && \# intall wget, it's used by later script common/cleanup.sh && \ rm -rf /tmp/scripts
basejvm
在baseos的基礎上,安裝java環境。
$ cat config/basejvm/Dockerfile.in FROM _NS_/fabric-baseos:_TAG_ COPY scripts /tmp/scripts RUN cd /tmp/scripts && \ common/jvm.sh && \# install openjdk-8-jdk common/cleanup.sh && \ rm -rf /tmp/scripts
baseimage
在basejvm的基礎上,增加了一些工具包,包括curl,sudo, git, make, zip, golang, nodejs, python, etc.
$ cat config/baseimage/Dockerfile.in FROM _NS_/fabric-basejvm:_TAG_ COPY scripts /tmp/scripts RUN cd /tmp/scripts && \ common/packages.sh && \#install software-properties-common curl sudo common/setup.sh && \# install common tools(git, net-tools, make, g++, unzip, etc)/Golang/NodeJS/python2.7/protocol buffer support docker/fixup.sh && \# prepare /opt/gopath and /var/hyperledger common/cleanup.sh && \ rm -rf /tmp/scripts ENV GOPATH=/opt/gopath ENV GOROOT=/opt/go ENV GOCACHE=off ENV PATH=$PATH:$GOROOT/bin:$GOPATH/bin