我正在尝试调试docker(包括所有东西,docker,dockerd,containerd,runc),并从github / docker / docker-ce克隆了源代码。
现在我可以找到以下源代码:
在docker-ce的回购和成功make
他们。
但是我无法在docker-ce repo中找到containerd和runc的代码,而在触发make
命令时会有二进制文件。
那么二进制文件来自哪里?
我知道有容器和runc的回购。
这是我自己从快速扫描中发现的结果。 Makefile for components/engine包括各种步骤,包括码头构建。
Dockerfile包含containerd和runc的部分:
FROM base AS containerd
RUN apt-get update && apt-get install -y btrfs-tools
ENV INSTALL_BINARY_NAME=containerd
COPY hack/dockerfile/install/install.sh ./install.sh
COPY hack/dockerfile/install/$INSTALL_BINARY_NAME.installer ./
RUN PREFIX=/build/ ./install.sh $INSTALL_BINARY_NAME
FROM runtime-dev AS runc
ENV INSTALL_BINARY_NAME=runc
COPY hack/dockerfile/install/install.sh ./install.sh
COPY hack/dockerfile/install/$INSTALL_BINARY_NAME.installer ./
RUN PREFIX=/build/ ./install.sh $INSTALL_BINARY_NAME
然后在dockerfile的hack文件夹中,有脚本来安装containerd和runc。
这些脚本克隆来自containerd和runc上游回购的repo和checkout特定提交。