{"id":2896,"date":"2023-07-14T13:40:11","date_gmt":"2023-07-14T05:40:11","guid":{"rendered":"https:\/\/xinchewhd.com.cn\/?p=2896"},"modified":"2023-07-14T13:40:11","modified_gmt":"2023-07-14T05:40:11","slug":"%e5%a6%82%e4%bd%95%e5%88%b6%e4%bd%9c%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9f%e9%95%9c%e5%83%8fdocker","status":"publish","type":"post","link":"https:\/\/xinchewhd.com.cn\/index.php\/docker\/%e5%a6%82%e4%bd%95%e5%88%b6%e4%bd%9c%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9f%e9%95%9c%e5%83%8fdocker\/","title":{"rendered":"\u5982\u4f55\u5236\u4f5c\u64cd\u4f5c\u7cfb\u7edf\u955c\u50cf(docker)"},"content":{"rendered":"<section style=\"line-height: 1.5em;\"><span style=\"font-size: var(--articleFontsize); letter-spacing: 0.034em;\">\u5728<\/span><span style=\"font-size: var(--articleFontsize); letter-spacing: 0.034em;\">\u4f7f\u7528docker\u7684\u65f6\u5019\uff0c\u7ecf\u5e38\u9700\u8981\u501f\u52a9\u4e00\u4e9b\u57fa\u7840\u955c\u50cf\u6765\u8fdb\u4e00\u6b65\u4e8c\u6b21\u5b9a\u5236\uff0c\u6bd4\u5982centos\u955c\u50cf\u3001ubunt\u955c\u50cf\uff0c\u90a3\u4e48\u5982\u679c\u8981\u81ea\u5df1\u5b9a\u4e49\u4e00\u4e2a\u57fa\u7840\u955c\u50cf\u5e94\u8be5\u5982\u4f55\u505a\u5462\uff0c\u6709\u4e24\u79cd\u65b9\u6cd5\uff0c\u8fd9\u4e24\u79cd\u65b9\u6cd5\u90fd\u662f\u53c2\u8003\u7f51\u7edc\u4e0a\u4ee5\u53ca\u81ea\u5df1\u5b9e\u8df5\u540e\u786e\u5b9e\u53ef\u7528\u7684\u65b9\u6cd5\uff0c\u672c\u4f8b\u5b50\u4ee5\u9e92\u9e9f\u64cd\u4f5c\u7cfb\u7edf\u4e3a\u4f8b\u5b50\uff0c\u63a8\u8350\u65b9\u6cd5\u4e8c<\/span><\/p>\n<\/section>\n<section style=\"line-height: 1.5em;\">\u65b9\u6cd5\u4e00\uff1a\u9010\u6b65\u64cd\u4f5c<\/p>\n<\/section>\n<section style=\"line-height: 1.5em;\">1\u3001\u521b\u5efa\u4efb\u610f\u4e00\u4e2a\u76ee\u5f55\u5e76\u8fdb\u5165\u6b64\u76ee\u5f55(\u4e0d\u53ef\u5728\/root\u4e0b\u521b\u5efa)\uff0c\u547d\u4ee4\u5982\u4e0b\uff1a<\/section>\n<section><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__attribute\">mkdir<\/span> -p \/opt\/kylin &amp;&amp; cd \/opt\/kylini<\/span><\/code><\/section>\n<section style=\"line-height: 1.5em;\">2\u3001\u521b\u5efa\u57fa\u7840\u76ee\u5f55\uff0c\u547d\u4ee4\u5982\u4e0b\uff1a<\/section>\n<section class=\"code-snippet__fix code-snippet__js\">\n<section style=\"line-height: 1.5em;\"><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__attribute\">mkdir<\/span>\u00a0usr dev<\/span><\/code><\/section>\n<\/section>\n<section style=\"line-height: 1.5em;\">3\u3001copy\u7cfb\u7edf\u76f8\u5173\u6587\u4ef6\u5230usr\u8def\u5f84\u4e0b\uff0c\u547d\u4ee4\u5982\u4e0b:<\/section>\n<section class=\"code-snippet__fix code-snippet__js\">\n<section style=\"line-height: 1.5em;\"><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__attribute\">cp<\/span> -a \/usr\/lib \/usr\/lib64 \/usr\/bin \/usr\/share usr\/<\/span><\/code><\/section>\n<\/section>\n<section style=\"line-height: 1.5em;\">4\u3001\u6309\u7167\u5f53\u524d\u7cfb\u7edf\u6765\u521b\u5efa\u8f6f\u94fe\uff0c\u547d\u4ee4\u5982\u4e0b\uff1a<\/section>\n<section class=\"code-snippet__fix code-snippet__js\">\n<section style=\"line-height: 1.5em;\"><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__attribute\">ln<\/span> -s usr\/lib lib<\/span><\/code><code><span class=\"code-snippet_outer\">ln -s usr\/lib64 lib64<\/span><\/code><code><span class=\"code-snippet_outer\">ln -s usr\/bin bin<\/span><\/code><\/section>\n<\/section>\n<section style=\"line-height: 1.5em;\">5\u3001\u590d\u5236\u914d\u7f6e\u6587\u4ef6\u4ee5\u53caroot\u76ee\u5f55\uff0c\u5982\u4e0b\uff1a<\/section>\n<section class=\"code-snippet__fix code-snippet__js\">\n<section style=\"line-height: 1.5em;\"><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__attribute\">cp<\/span> -a \/etc \/root .\/<\/span><\/code><\/section>\n<\/section>\n<section style=\"line-height: 1.5em;\">6\u3001\u5220\u9664\u4e00\u4e9b\u975e\u5fc5\u8981\u811a\u672c\uff0c\u5426\u5219\u6267\u884cchroot .\u4f1a\u63d0\u793aError: \/proc must be mounted\uff0c\u5982\u4e0b\uff1a<\/section>\n<section class=\"code-snippet__fix code-snippet__js\">\n<section style=\"line-height: 1.5em;\"><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__attribute\">rm<\/span> -rf\u00a0etc\/profile.d\/flatpak.sh\u00a0etc\/profile.d\/gawk.csh\u00a0etc\/profile.d\/gawk.sh\u00a0etc\/profile.d\/lang.csh\u00a0etc\/profile.d\/lang.sh\u00a0etc\/profile.d\/system-<span class=\"code-snippet__literal\">info<\/span>.sh<\/span><\/code><\/section>\n<\/section>\n<section style=\"line-height: 1.5em;\">7\u3001\u5168\u90e8\u64cd\u4f5c\u5b8c\u6210\u540e\u6587\u4ef6\u76ee\u5f55\u7ed3\u6784\u5982\u56fe\u6240\u793a\uff1a<\/p>\n<\/section>\n<section style=\"text-align: center; line-height: 1.5em;\"><img decoding=\"async\" class=\"rich_pages wxw-img js_insertlocalimg lazyload\" data-src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/default\/nine\/2023-07-14\/13-36-55\/20230714133655dede62b03.png\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" data-ratio=\"0.30917874396135264\" data-s=\"300,640\" data-w=\"621\" \/><noscript><img decoding=\"async\" class=\"rich_pages wxw-img js_insertlocalimg\" src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/default\/nine\/2023-07-14\/13-36-55\/20230714133655dede62b03.png\" data-ratio=\"0.30917874396135264\" data-s=\"300,640\" data-w=\"621\" \/><\/noscript><\/section>\n<section style=\"line-height: 1.5em;\">8\u3001\u6267\u884cchroot . \u547d\u4ee4\uff0c\u6d4b\u8bd5\u955c\u50cf\u76ee\u5f55\u662f\u5426\u6709\u95ee\u9898\uff0c\u5df2\u8fdb\u5165\u5bb9\u5668\uff0c\u5982\u56fe\uff1a<\/p>\n<\/section>\n<section style=\"text-align: center; line-height: 1.5em;\"><img decoding=\"async\" class=\"rich_pages wxw-img js_insertlocalimg lazyload\" data-src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/default\/nine\/2023-07-14\/13-36-55\/2023071413365593935a4a2.png\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" data-ratio=\"0.36973478939157567\" data-s=\"300,640\" data-w=\"641\" \/><noscript><img decoding=\"async\" class=\"rich_pages wxw-img js_insertlocalimg\" src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/default\/nine\/2023-07-14\/13-36-55\/2023071413365593935a4a2.png\" data-ratio=\"0.36973478939157567\" data-s=\"300,640\" data-w=\"641\" \/><\/noscript><\/section>\n<section style=\"line-height: 1.5em;\">9\u3001\u5c06\u6574\u4e2a\u76ee\u5f55\u6253\u5305\uff0c\u547d\u4ee4\u5982\u4e0b\uff1a<\/section>\n<section class=\"code-snippet__fix code-snippet__js\">\n<section style=\"line-height: 1.5em;\"><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__built_in\">cd<\/span> ..<\/span><\/code><code><span class=\"code-snippet_outer\">tar -C kylin\/ -zc . -f kylin-docker.tar.gz \u6216\u8005tar -zcvf kylin-docker.tar.gz -C kylin\/ .<\/span><\/code><\/section>\n<\/section>\n<section style=\"line-height: 1.5em;\">10\u3001\u7f16\u5199Dockerfile\u6587\u4ef6\uff0c\u5b9a\u5236\u955c\u50cf\uff0c\u5982\u4e0b\uff1a<\/p>\n<\/section>\n<section class=\"code-snippet__fix code-snippet__js\">\n<section style=\"line-height: 1.5em;\"><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__attr\">FROM<\/span> <span class=\"code-snippet__string\">scratch<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__attr\">ADD<\/span> <span class=\"code-snippet__string\">kylin-docker.tar.gz \/<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__attr\">LABEL<\/span> <span class=\"code-snippet__string\">\\<\/span><\/span><\/code><code><span class=\"code-snippet_outer\">    org.label-schema.schema-version=\"1.0\" \\<\/span><\/code><code><span class=\"code-snippet_outer\">    org.label-schema.name=\"Kylin Base Image\" \\<\/span><\/code><code><span class=\"code-snippet_outer\">    org.label-schema.vendor=\"Kylin\" \\<\/span><\/code><code><span class=\"code-snippet_outer\">    org.label-schema.license=\"GPLv2\" \\<\/span><\/code><code><span class=\"code-snippet_outer\">    org.label-schema.build-date=\"20230629\" \\<\/span><\/code><code><span class=\"code-snippet_outer\">    org.opencontainers.image.title=\"Kylin v10 Image\" \\<\/span><\/code><code><span class=\"code-snippet_outer\">    org.opencontainers.image.vendor=\"Kylin\" \\<\/span><\/code><code><span class=\"code-snippet_outer\">    org.opencontainers.image.licenses=\"GPL-2.0-only\" \\<\/span><\/code><code><span class=\"code-snippet_outer\">    org.opencontainers.image.created=\"2022-06-29 00:00:00+00:00\"<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__attr\">CMD<\/span> <span class=\"code-snippet__string\">[\"\/bin\/bash\"]<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><br \/>\n<\/span><\/code><\/section>\n<\/section>\n<section style=\"line-height: 1.5em;\">11\u3001\u6784\u5efa\u955c\u50cf\uff0c\u547d\u4ee4\u5982\u4e0b\uff1a<\/section>\n<section class=\"code-snippet__fix code-snippet__js\">\n<section style=\"line-height: 1.5em;\"><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__attribute\">docker<\/span> build -t kylin-v10 .<\/span><\/code><\/section>\n<\/section>\n<section style=\"line-height: 1.5em;\">12\u3001\u6784\u5efa\u5b8c\u6210\u540e\uff0c\u67e5\u770b\u955c\u50cf\uff0c\u5982\u56fe\uff1a<\/p>\n<\/section>\n<section style=\"text-align: center; line-height: 1.5em;\"><img decoding=\"async\" class=\"rich_pages wxw-img js_insertlocalimg lazyload\" data-src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/default\/nine\/2023-07-14\/13-36-55\/202307141336552020d0423.png\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" data-ratio=\"0.17869415807560138\" data-s=\"300,640\" data-w=\"873\" \/><noscript><img decoding=\"async\" class=\"rich_pages wxw-img js_insertlocalimg\" src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/default\/nine\/2023-07-14\/13-36-55\/202307141336552020d0423.png\" data-ratio=\"0.17869415807560138\" data-s=\"300,640\" data-w=\"873\" \/><\/noscript><\/section>\n<section style=\"line-height: 1.5em;\">\u4ece\u4e0a\u56fe\u53ef\u4ee5\u770b\u51fa\uff0c\u901a\u8fc7\u6b64\u65b9\u6cd5\u5236\u4f5c\u7684\u955c\u50cf\u504f\u5927<\/p>\n<\/section>\n<section style=\"line-height: 1.5em;\">\u65b9\u6cd5\u4e8c\uff0c\u76f4\u63a5\u901a\u8fc7\u811a\u672c(\u6765\u6e90GitHub\u5e76\u4e8c\u6b21\u4fee\u6539)\uff0c\u63a8\u8350\u6b64\u79cd\u65b9\u6cd5\u5236\u4f5c<\/section>\n<section style=\"line-height: 1.5em;\">1\u3001bash\u6587\u4ef6\u5185\u5bb9\u5982\u4e0b\uff1a<\/section>\n<section class=\"code-snippet__fix code-snippet__js\">\n<section style=\"line-height: 1.5em;\"><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__meta\">#!\/usr\/bin\/env bash<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__comment\">#<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__comment\"># Create a base CentOS Docker image.<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__comment\">#<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__comment\"># This script is useful on systems with yum installed (e.g., building<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__comment\"># a CentOS image on CentOS).<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><br \/>\n<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__built_in\">set<\/span> -e<\/span><\/code><code><span class=\"code-snippet_outer\"><br \/>\n<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__function\"><span class=\"code-snippet__title\">usage<\/span><\/span>() {<\/span><\/code><code><span class=\"code-snippet_outer\">  cat &lt;&lt; EOOPTS<\/span><\/code><code><span class=\"code-snippet_outer\">$(basename <span class=\"code-snippet__variable\">$0<\/span>) [OPTIONS] &lt;name&gt;<\/span><\/code><code><span class=\"code-snippet_outer\">OPTIONS:<\/span><\/code><code><span class=\"code-snippet_outer\">  -p <span class=\"code-snippet__string\">\"&lt;packages&gt;\"<\/span>  The list of packages to install <span class=\"code-snippet__keyword\">in<\/span> the container.<\/span><\/code><code><span class=\"code-snippet_outer\">                   The default is blank. Can use multiple <span class=\"code-snippet__built_in\">times<\/span>.<\/span><\/code><code><span class=\"code-snippet_outer\">  -g <span class=\"code-snippet__string\">\"&lt;groups&gt;\"<\/span>    The groups of packages to install <span class=\"code-snippet__keyword\">in<\/span> the container.<\/span><\/code><code><span class=\"code-snippet_outer\">                   The default is <span class=\"code-snippet__string\">\"Core\"<\/span>. Can use multiple <span class=\"code-snippet__built_in\">times<\/span>.<\/span><\/code><code><span class=\"code-snippet_outer\">  -y &lt;yumconf&gt;     The path to the yum config to install packages from. The<\/span><\/code><code><span class=\"code-snippet_outer\">                   default is \/etc\/yum.conf <span class=\"code-snippet__keyword\">for<\/span> Centos\/RHEL and \/etc\/dnf\/dnf.conf <span class=\"code-snippet__keyword\">for<\/span> Fedora<\/span><\/code><code><span class=\"code-snippet_outer\">  -t &lt;tag&gt;         Specify Tag information.<\/span><\/code><code><span class=\"code-snippet_outer\">                   default is referred at \/etc\/{redhat,system}-release<\/span><\/code><code><span class=\"code-snippet_outer\">EOOPTS<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__built_in\">exit<\/span> 1<\/span><\/code><code><span class=\"code-snippet_outer\">}<\/span><\/code><code><span class=\"code-snippet_outer\"><br \/>\n<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__comment\"># option defaults<\/span><\/span><\/code><code><span class=\"code-snippet_outer\">yum_config=\/etc\/yum.conf<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__keyword\">if<\/span> [ -f \/etc\/dnf\/dnf.conf ] &amp;&amp; <span class=\"code-snippet__built_in\">command<\/span> -v dnf &amp;&gt; \/dev\/null; <span class=\"code-snippet__keyword\">then<\/span><\/span><\/code><code><span class=\"code-snippet_outer\">  yum_config=\/etc\/dnf\/dnf.conf<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__built_in\">alias<\/span> yum=dnf<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__keyword\">fi<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__comment\"># for names with spaces, use double quotes (\") as install_groups=('Core' '\"Compute Node\"')<\/span><\/span><\/code><code><span class=\"code-snippet_outer\">install_groups=()<\/span><\/code><code><span class=\"code-snippet_outer\">install_packages=()<\/span><\/code><code><span class=\"code-snippet_outer\">version=<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__keyword\">while<\/span> <span class=\"code-snippet__built_in\">getopts<\/span> <span class=\"code-snippet__string\">\":y:p:g:t:h\"<\/span> opt; <span class=\"code-snippet__keyword\">do<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__keyword\">case<\/span> <span class=\"code-snippet__variable\">$opt<\/span> <span class=\"code-snippet__keyword\">in<\/span><\/span><\/code><code><span class=\"code-snippet_outer\">    y)<\/span><\/code><code><span class=\"code-snippet_outer\">      yum_config=<span class=\"code-snippet__variable\">$OPTARG<\/span><\/span><\/code><code><span class=\"code-snippet_outer\">      ;;<\/span><\/code><code><span class=\"code-snippet_outer\">    h)<\/span><\/code><code><span class=\"code-snippet_outer\">      usage<\/span><\/code><code><span class=\"code-snippet_outer\">      ;;<\/span><\/code><code><span class=\"code-snippet_outer\">    p)<\/span><\/code><code><span class=\"code-snippet_outer\">      install_packages+=(<span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$OPTARG<\/span>\"<\/span>)<\/span><\/code><code><span class=\"code-snippet_outer\">      ;;<\/span><\/code><code><span class=\"code-snippet_outer\">    g)<\/span><\/code><code><span class=\"code-snippet_outer\">      install_groups+=(<span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$OPTARG<\/span>\"<\/span>)<\/span><\/code><code><span class=\"code-snippet_outer\">      ;;<\/span><\/code><code><span class=\"code-snippet_outer\">    t)<\/span><\/code><code><span class=\"code-snippet_outer\">      version=<span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$OPTARG<\/span>\"<\/span><\/span><\/code><code><span class=\"code-snippet_outer\">      ;;<\/span><\/code><code><span class=\"code-snippet_outer\">    \\?)<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__built_in\">echo<\/span> <span class=\"code-snippet__string\">\"Invalid option: -<span class=\"code-snippet__variable\">$OPTARG<\/span>\"<\/span><\/span><\/code><code><span class=\"code-snippet_outer\">      usage<\/span><\/code><code><span class=\"code-snippet_outer\">      ;;<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__keyword\">esac<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__keyword\">done<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__built_in\">shift<\/span> $((OPTIND - 1))<\/span><\/code><code><span class=\"code-snippet_outer\">name=<span class=\"code-snippet__variable\">$1<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><br \/>\n<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__keyword\">if<\/span> [[ -z <span class=\"code-snippet__variable\">$name<\/span> ]]; <span class=\"code-snippet__keyword\">then<\/span><\/span><\/code><code><span class=\"code-snippet_outer\">  usage<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__keyword\">fi<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><br \/>\n<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__comment\"># default to Core group if not specified otherwise<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__keyword\">if<\/span> [ <span class=\"code-snippet__variable\">${#install_groups[*]}<\/span> -eq 0 ]; <span class=\"code-snippet__keyword\">then<\/span><\/span><\/code><code><span class=\"code-snippet_outer\">  install_groups=(<span class=\"code-snippet__string\">'Core'<\/span>)<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__keyword\">fi<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><br \/>\n<\/span><\/code><code><span class=\"code-snippet_outer\">target=$(mktemp -d --tmpdir=\/root $(basename <span class=\"code-snippet__variable\">$0<\/span>).XXXXXX)<\/span><\/code><code><span class=\"code-snippet_outer\"><br \/>\n<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__built_in\">set<\/span> -x<\/span><\/code><code><span class=\"code-snippet_outer\"><br \/>\n<\/span><\/code><code><span class=\"code-snippet_outer\">mkdir -m 755 <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span>\/dev<\/span><\/code><code><span class=\"code-snippet_outer\">mknod -m 600 <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span>\/dev\/console c 5 1<\/span><\/code><code><span class=\"code-snippet_outer\">mknod -m 600 <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span>\/dev\/initctl p<\/span><\/code><code><span class=\"code-snippet_outer\">mknod -m 666 <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span>\/dev\/full c 1 7<\/span><\/code><code><span class=\"code-snippet_outer\">mknod -m 666 <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span>\/dev\/null c 1 3<\/span><\/code><code><span class=\"code-snippet_outer\">mknod -m 666 <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span>\/dev\/ptmx c 5 2<\/span><\/code><code><span class=\"code-snippet_outer\">mknod -m 666 <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span>\/dev\/random c 1 8<\/span><\/code><code><span class=\"code-snippet_outer\">mknod -m 666 <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span>\/dev\/tty c 5 0<\/span><\/code><code><span class=\"code-snippet_outer\">mknod -m 666 <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span>\/dev\/tty0 c 4 0<\/span><\/code><code><span class=\"code-snippet_outer\">mknod -m 666 <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span>\/dev\/urandom c 1 9<\/span><\/code><code><span class=\"code-snippet_outer\">mknod -m 666 <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span>\/dev\/zero c 1 5<\/span><\/code><code><span class=\"code-snippet_outer\"><br \/>\n<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__comment\"># amazon linux yum will fail without vars set<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__keyword\">if<\/span> [ -d \/etc\/yum\/vars ]; <span class=\"code-snippet__keyword\">then<\/span><\/span><\/code><code><span class=\"code-snippet_outer\">  mkdir -p -m 755 <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span>\/etc\/yum<\/span><\/code><code><span class=\"code-snippet_outer\">  cp -a \/etc\/yum\/vars <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span>\/etc\/yum\/<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__keyword\">fi<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><br \/>\n<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__keyword\">if<\/span> [[ -n <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$install_groups<\/span>\"<\/span> ]]; <span class=\"code-snippet__keyword\">then<\/span><\/span><\/code><code><span class=\"code-snippet_outer\">  yum -c <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$yum_config<\/span>\"<\/span> --installroot=<span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span> --releasever=\/ --<span class=\"code-snippet__built_in\">setopt<\/span>=tsflags=nodocs \\<\/span><\/code><code><span class=\"code-snippet_outer\">    --<span class=\"code-snippet__built_in\">setopt<\/span>=group_package_types=mandatory -y groupinstall <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">${install_groups[@]}<\/span>\"<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__keyword\">fi<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><br \/>\n<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__keyword\">if<\/span> [[ -n <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$install_packages<\/span>\"<\/span> ]]; <span class=\"code-snippet__keyword\">then<\/span><\/span><\/code><code><span class=\"code-snippet_outer\">  yum -c <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$yum_config<\/span>\"<\/span> --installroot=<span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span> --releasever=\/ --<span class=\"code-snippet__built_in\">setopt<\/span>=tsflags=nodocs \\<\/span><\/code><code><span class=\"code-snippet_outer\">    --<span class=\"code-snippet__built_in\">setopt<\/span>=group_package_types=mandatory -y install <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">${install_packages[@]}<\/span>\"<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__keyword\">fi<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><br \/>\n<\/span><\/code><code><span class=\"code-snippet_outer\">yum -c <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$yum_config<\/span>\"<\/span> --installroot=<span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span> -y clean all<\/span><\/code><code><span class=\"code-snippet_outer\"><br \/>\n<\/span><\/code><code><span class=\"code-snippet_outer\">cat &gt; <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span>\/etc\/sysconfig\/network &lt;&lt; EOF<\/span><\/code><code><span class=\"code-snippet_outer\">NETWORKING=yes<\/span><\/code><code><span class=\"code-snippet_outer\">HOSTNAME=localhost.localdomain<\/span><\/code><code><span class=\"code-snippet_outer\">EOF<\/span><\/code><code><span class=\"code-snippet_outer\"><br \/>\n<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__comment\"># effectively: febootstrap-minimize --keep-zoneinfo --keep-rpmdb --keep-services \"$target\".<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__comment\">#  locales<\/span><\/span><\/code><code><span class=\"code-snippet_outer\">rm -rf <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span>\/usr\/{{lib,share}\/locale,{lib,lib64}\/gconv,bin\/localedef,sbin\/build-locale-archive}<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__comment\">#  docs and man pages<\/span><\/span><\/code><code><span class=\"code-snippet_outer\">rm -rf <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span>\/usr\/share\/{man,doc,info,gnome\/<span class=\"code-snippet__built_in\">help<\/span>}<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__comment\">#  cracklib<\/span><\/span><\/code><code><span class=\"code-snippet_outer\">rm -rf <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span>\/usr\/share\/cracklib<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__comment\">#  i18n<\/span><\/span><\/code><code><span class=\"code-snippet_outer\">rm -rf <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span>\/usr\/share\/i18n<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__comment\">#  yum cache<\/span><\/span><\/code><code><span class=\"code-snippet_outer\">rm -rf <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span>\/var\/cache\/yum<\/span><\/code><code><span class=\"code-snippet_outer\">mkdir -p --mode=0755 <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span>\/var\/cache\/yum<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__comment\">#  sln<\/span><\/span><\/code><code><span class=\"code-snippet_outer\">rm -rf <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span>\/sbin\/sln<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__comment\">#  ldconfig<\/span><\/span><\/code><code><span class=\"code-snippet_outer\">rm -rf <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span>\/etc\/ld.so.cache <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span>\/var\/cache\/ldconfig<\/span><\/code><code><span class=\"code-snippet_outer\">mkdir -p --mode=0755 <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span>\/var\/cache\/ldconfig<\/span><\/code><code><span class=\"code-snippet_outer\"><br \/>\n<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__keyword\">if<\/span> [ -z <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$version<\/span>\"<\/span> ]; <span class=\"code-snippet__keyword\">then<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__keyword\">for<\/span> file <span class=\"code-snippet__keyword\">in<\/span> <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span>\/etc\/{kylin,system}-release; <span class=\"code-snippet__keyword\">do<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__keyword\">if<\/span> [ -r <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$file<\/span>\"<\/span> ]; <span class=\"code-snippet__keyword\">then<\/span><\/span><\/code><code><span class=\"code-snippet_outer\">      version=<span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$(sed 's\/^[^0-9\\]*\\([0-9.]\\+\\).*$\/\\1\/' \"$file\")<\/span>\"<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__built_in\">break<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__keyword\">fi<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__keyword\">done<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__keyword\">fi<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><br \/>\n<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__keyword\">if<\/span> [ -z <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$version<\/span>\"<\/span> ]; <span class=\"code-snippet__keyword\">then<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__built_in\">echo<\/span> &gt;&amp;2 <span class=\"code-snippet__string\">\"warning: cannot autodetect OS version, using '<span class=\"code-snippet__variable\">$name<\/span>' as tag\"<\/span><\/span><\/code><code><span class=\"code-snippet_outer\">  version=<span class=\"code-snippet__variable\">$name<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__keyword\">fi<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><br \/>\n<\/span><\/code><code><span class=\"code-snippet_outer\">tar --numeric-owner -c -C <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span> . | docker import - <span class=\"code-snippet__variable\">$name<\/span>:<span class=\"code-snippet__variable\">$version<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><br \/>\n<\/span><\/code><code><span class=\"code-snippet_outer\"><span class=\"code-snippet__comment\">#docker run -i -t --rm $name:$version \/bin\/bash -c 'echo success'<\/span><\/span><\/code><code><span class=\"code-snippet_outer\"><br \/>\n<\/span><\/code><code><span class=\"code-snippet_outer\">rm -rf <span class=\"code-snippet__string\">\"<span class=\"code-snippet__variable\">$target<\/span>\"<\/span><\/span><\/code><\/section>\n<\/section>\n<section style=\"line-height: 1.5em;\"><\/section>\n<section><\/section>\n<section style=\"line-height: 1.5em;\">\u6ce8\u610f\uff1a\u7b2c129\u884c\u9700\u8981\u4fee\u6539\u4e3a\u81ea\u5df1\u7cfb\u7edf\u7684release\uff0c\u53ef\u901a\u8fc7cat \/etc\/kylin-release\u547d\u4ee4\u67e5\u770b<\/section>\n<section style=\"line-height: 1.5em;\">2\u3001\u6267\u884cbash\u6587\u4ef6\uff0c\u547d\u4ee4\u5982\u4e0b\uff1a<\/p>\n<\/section>\n<section class=\"code-snippet__fix code-snippet__js\">\n<section style=\"line-height: 1.5em;\"><code><span class=\"code-snippet_outer\">.\/mkimage-yum.sh -y \/etc\/yum.conf kylinv10<\/span><\/code><\/section>\n<\/section>\n<section style=\"line-height: 1.5em;\">3\u3001\u6267\u884c\u5b8c\u6210\u540e\uff0c\u67e5\u770b\u955c\u50cf\u5927\u5c0f\uff0c\u5982\u56fe\uff1a<\/section>\n<section style=\"text-align: center; line-height: 1.5em;\"><img decoding=\"async\" class=\"rich_pages wxw-img js_insertlocalimg lazyload\" data-src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/default\/nine\/2023-07-14\/13-36-56\/20230714133656b3b36bbe0.png\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" data-ratio=\"0.18285714285714286\" data-s=\"300,640\" data-w=\"875\" \/><noscript><img decoding=\"async\" class=\"rich_pages wxw-img js_insertlocalimg\" src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/default\/nine\/2023-07-14\/13-36-56\/20230714133656b3b36bbe0.png\" data-ratio=\"0.18285714285714286\" data-s=\"300,640\" data-w=\"875\" \/><\/noscript><\/section>\n<section style=\"line-height: 1.5em;\">\u4ece\u4e0a\u56fe\u53ef\u4ee5\u770b\u51fa\uff0c\u901a\u8fc7\u811a\u672c\u65b9\u5f0f\u505a\u6210\u7684\u955c\u50cf\u4f53\u79ef\u66f4\u5c0f\u4e00\u4e9b\uff0c\u5982\u679c\u60f3\u4f53\u79ef\u66f4\u5c0f\u4e00\u4e9b\uff0c\u53ef\u901a\u8fc7\u5220\u9664\u7cfb\u7edf\u5185\u4e0d\u7528\u7684\u8f6f\u4ef6\u5305\u5b9e\u73b0\uff0c\u5177\u4f53\u53ef\u6839\u636e\u9700\u6c42\u81ea\u884c\u5b9e\u73b0<\/p>\n<\/section>\n<section style=\"line-height: 1.5em;\">\u81f3\u6b64\uff0c\u5236\u4f5c\u57fa\u7840\u955c\u50cf\u5b8c\u6210\uff01<\/section>\n<section style=\"display: none; line-height: 1.5em;\"><\/section>\n<p style=\"display: none;\">\n<p>\u672c\u7bc7\u6587\u7ae0\u6765\u6e90\u4e8e\u5fae\u4fe1\u516c\u4f17\u53f7\uff1ahttps:\/\/mp.weixin.qq.com\/s\/D39tR21rBbuk4GNQ68opZg<\/p>\n","raw":"","protected":false},"excerpt":{"rendered":"<p>\u5728\u4f7f\u7528docker\u7684\u65f6\u5019\uff0c\u7ecf\u5e38\u9700\u8981\u501f\u52a9\u4e00\u4e9b\u57fa\u7840\u955c\u50cf\u6765\u8fdb\u4e00\u6b65\u4e8c\u6b21\u5b9a\u5236\uff0c\u6bd4\u5982centos\u955c\u50cf\u3001ubunt\u955c\u50cf\uff0c\u90a3\u4e48\u5982\u679c\u8981\u81ea\u5df1\u5b9a\u4e49\u4e00\u4e2a\u57fa &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"emotion":"","emotion_color":"","title_style":"","license":"","footnotes":""},"categories":[21],"tags":[],"class_list":["post-2896","post","type-post","status-publish","format-standard","hentry","category-docker"],"post_thumbnail_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/default\/nine\/2023-07-14\/13-36-55\/20230714133655dede62b03.png","content_first_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/default\/nine\/2023-07-14\/13-36-55\/20230714133655dede62b03.png","post_medium_image_300":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/default\/nine\/2023-07-14\/13-36-55\/20230714133655dede62b03.png","post_thumbnail_image_624":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/default\/nine\/2023-07-14\/13-36-55\/20230714133655dede62b03.png","post_frist_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/default\/nine\/2023-07-14\/13-36-55\/20230714133655dede62b03.png","post_medium_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/default\/nine\/2023-07-14\/13-36-55\/20230714133655dede62b03.png","post_large_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/default\/nine\/2023-07-14\/13-36-55\/20230714133655dede62b03.png","post_full_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/default\/nine\/2023-07-14\/13-36-55\/20230714133655dede62b03.png","post_all_images":[{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/default\/nine\/2023-07-14\/13-36-55\/20230714133655dede62b03.png","id":"image0"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/default\/nine\/2023-07-14\/13-36-55\/20230714133655dede62b03.png","id":"image1"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/default\/nine\/2023-07-14\/13-36-55\/2023071413365593935a4a2.png","id":"image2"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/default\/nine\/2023-07-14\/13-36-55\/2023071413365593935a4a2.png","id":"image3"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/default\/nine\/2023-07-14\/13-36-55\/202307141336552020d0423.png","id":"image4"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/default\/nine\/2023-07-14\/13-36-55\/202307141336552020d0423.png","id":"image5"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/default\/nine\/2023-07-14\/13-36-56\/20230714133656b3b36bbe0.png","id":"image6"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/default\/nine\/2023-07-14\/13-36-56\/20230714133656b3b36bbe0.png","id":"image7"}],"videoAdId":"","listAd":"0","listAdId":"","listAdEvery":6,"total_comments":0,"category_name":"Docker","post_date":"2023-07-14","like_count":"0","praiseWord":"\u9f13\u52b1","copyright_state":"","excitationAd":"0","rewardedVideoAdId":"","detailAdId":"","detailAd":"0","enterpriseMinapp":"0","audios":[],"postImageUrl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2023\/05\/20230519082947553.jpg","avatarurls":[],"related_posts":null,"pageviews":306,"next_post_id":3002,"next_post_title":"18 \u5f20\u56fe\uff0c\u603b\u7ed3 Java \u5bb9\u5668\u5316\u7684\u6700\u4f73\u5b9e\u8df5~","previous_post_id":2884,"previous_post_title":"Docker\u8f7b\u677e\u5165\u95e8\uff08\u8be6\u89e3\uff09","_links":{"self":[{"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/posts\/2896","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/comments?post=2896"}],"version-history":[{"count":0,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/posts\/2896\/revisions"}],"wp:attachment":[{"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/media?parent=2896"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/categories?post=2896"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/tags?post=2896"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}