在fabric的github存储库中查找之后,我只能找到一个泊坞文件,上面写着“ FROM _DOCKER_BASE_”,我找不到该文件。
有人知道什么是“ docker base”,容器在部署中到底做了什么?
这是问题的背景细节。我正在使用go语言创建共识机制,并且我对使用grpc和go安装在映像中的docker映像大小感到担忧。因此,我检查了尺寸较小的超级账本图像,并想了解这些图像是如何实现的。
最初,我认为容器正在执行以golang链代码编写的事务。但是我没有看到容器正在运行go语言设置,所以我很困惑,正在寻找答案
答案 0 :(得分:0)
这意味着docker将用来构建容器的dockerfile需要一个映像来启动“ FROM”。
在Dockerhub上,您可以找到为golang构建的映像,例如: https://hub.docker.com/_/golang?tab=description 在这里,您不仅可以获得有关图像本身的信息,而且还具有如何使用它的信息。
例如,如果要使用该图像,则应先将其拉出:
docker pull golang
然后相应地修改fabric Dockerfile,然后使用您的首选选项运行容器。(请注意,下面的代码来自fabric github,我不知道dockerfile的详细信息,只是示例)
#
# Copyright Greg Haskins All Rights Reserved.
#
# SPDX-License-Identifier: Apache-2.0
#
FROM DOCKER_BASE
COPY scripts /tmp/scripts
RUN cd /tmp/scripts && \
common/init.sh && \
docker/init.sh && \
common/cleanup.sh && \
rm -rf /tmp/scripts
然后构建您的容器,如下所示: (从dockerfile所在的内部,您可以从外部传递dockerfile所在的文件夹以及与您的未来容器相关的所有内容的外部容器来完成此操作)
docker build -t mygoolangimage .
在构建一切正常之后,您将拥有一个可以用于运行的新映像:
docker run -d -p 5000:5000 --restart=always --name mygoolangcontainer mygoolangimage
不知道要构建的dockerfile需要图像,就好像您需要从docker容器中阅读基础知识一样,也许您可以从https://docs.docker.com/get-started/开始,然后轻松构建。
我可以在此处提供有关如何开始使用Docker的信息,但是主站点具有您所需的一切。
-----编辑-----
github https://github.com/hyperledger/fabric-baseimage中的“ DOCKER_BASE”部分是指具有以下部分的makefile:
DOCKER_BASE_amd64=ubuntu:xenial
DOCKER_BASE_s390x=s390x/debian:stretch
DOCKER_BASE_ppc64le=ppc64le/ubuntu:xenial
DOCKER_BASE_armv7l=armv7/armhf-ubuntu
DOCKER_BASE=$(DOCKER_BASE_$(ARCH))