{"id":31915,"date":"2019-10-31T21:43:56","date_gmt":"2019-10-31T18:43:56","guid":{"rendered":"https:\/\/prohoster.info\/blog\/polzovatel-v-docker\/"},"modified":"2019-10-31T21:43:56","modified_gmt":"2019-10-31T18:43:56","slug":"polzovatel-v-docker","status":"publish","type":"post","link":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/polzovatel-v-docker","title":{"rendered":"Lietot\u0101js Docker vide.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/aak74\/posts\/\">Andrej Kopilov<\/a><\/noindex>, m\u016bsu tehnisko direktoru, pat\u012bk akt\u012bvi izmantot un populariz\u0113t Docker. Jaunaj\u0101 rakst\u0101 vi\u0146\u0161 st\u0101sta, k\u0101 izveidot lietot\u0101jus Docker. Pareiza darb\u012bba ar tiem, k\u0101p\u0113c lietot\u0101jiem nevajadz\u0113tu atst\u0101t ar root \u043f\u0440\u0430\u0432\u0430 un k\u0101 atrisin\u0101t nesakrit\u012bbu r\u0101d\u012bt\u0101jos Dockerfile.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Visi procesi konteiner\u0101 darbosies k\u0101 root lietot\u0101js, ja to \u012bpa\u0161i ne nor\u0101d\u012bs. Tas izskat\u0101s \u013coti \u0113rti, jo \u0161im lietot\u0101jam nav nek\u0101du ierobe\u017eojumu. T\u0101p\u0113c str\u0101d\u0101t k\u0101 root ir nepareizi no dro\u0161\u012bbas viedok\u013ca. Ja viet\u0113j\u0101 dator\u0101 neviens pr\u0101t\u012bg\u0101 pr\u0101t\u0101 nedarbojas ar root ties\u012bb\u0101m, daudzi uzs\u0101k procesus k\u0101 root konteineros.<\/p>\n<p><\/p>\n<p>Vienm\u0113r past\u0101v k\u013c\u016bdas, kas \u013cauj \u013caunpr\u0101t\u012bgam programmat\u016brai izb\u0113gt no konteinera un iek\u013c\u016bt hosta dator\u0101. Pie\u0146emot slikt\u0101ko, mums j\u0101nodro\u0161ina, ka procesi tiek uzs\u0101kti konteiner\u0101 no lietot\u0101ja, kam nav nek\u0101du ties\u012bbu uz hosta ma\u0161\u012bnu.<\/p>\n<p><\/p>\n<h2>Lietot\u0101ja izveide<\/h2>\n<p><\/p>\n<p>Lietot\u0101ja izveide konteiner\u0101 nav at\u0161\u0137ir\u012bga no t\u0101 izveides Linux izplat\u012bjumos. Tom\u0113r, pamatojoties uz at\u0161\u0137ir\u012bgiem b\u0101zes att\u0113liem, komandas var at\u0161\u0137irties.<\/p>\n<p><\/p>\n<p>Debian balst\u012btaj\u0101m izplat\u012bjum\u0101m nepiecie\u0161ams pievienot Dockerfile:<\/p>\n<pre><code class=\"nginx\">RUN groupadd --gid 2000 node \n  &amp;&amp; useradd --uid 2000 --gid node --shell \/bin\/bash --create-home node<\/code><\/pre>\n<p><\/p>\n<p>Alpine gad\u012bjum\u0101:<\/p>\n<p><\/p>\n<pre><code class=\"nginx\">RUN addgroup -g 2000 node \n    &amp;&amp; adduser -u 2000 -G node -s \/bin\/sh -D node\n<\/code><\/pre>\n<p><\/p>\n<h2>Procesu uzs\u0101k\u0161ana no lietot\u0101ja<\/h2>\n<p><\/p>\n<p>Lai uzs\u0101ktu visus n\u0101kamos procesus no lietot\u0101ja ar UID 2000, izpildiet:<\/p>\n<p><\/p>\n<pre><code class=\"nginx\">USER 2000<\/code><\/pre>\n<p><\/p>\n<p>Lai uzs\u0101ktu visus n\u0101kamos procesus no lietot\u0101ja node, izpildiet:<\/p>\n<p><\/p>\n<pre><code class=\"nginx\">USER node<\/code><\/pre>\n<p><\/p>\n<p>Vair\u0101k inform\u0101cijas par <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/engine\/reference\/builder\/#user\">dokument\u0101cij\u0101<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h2>Apjomu mont\u0101\u017ea<\/h2>\n<p><\/p>\n<p>Mont\u0113jot apjomu konteiner\u0101, nodro\u0161iniet lietot\u0101jam iesp\u0113ju las\u012bt un (vai) rakst\u012bt failus. Tam lietot\u0101ja UID (GID) konteiner\u0101 un \u0101rpus konteiner\u0101 eso\u0161\u0101 lietot\u0101ja, kam ir attiec\u012bg\u0101s piek\u013cuve ties\u012bbas, j\u0101atbilst. Lietot\u0101ju nosaukumi \u0161aj\u0101 gad\u012bjum\u0101 nav svar\u012bgi.<\/p>\n<p><\/p>\n<p>Bie\u017ei Linux dator\u0101 lietot\u0101ja UID un GID ir vien\u0101di 1000. \u0160ie identifikatori tiek pie\u0161\u0137irti pirmajam datoram lietot\u0101jam.<\/p>\n<p><\/p>\n<p>Uzzin\u0101t savus identifikatorus ir vienk\u0101r\u0161i:<\/p>\n<p><\/p>\n<pre><code class=\"nginx\">id<\/code><\/pre>\n<p><\/p>\n<p>J\u016bs ieg\u016bsiet visaptvero\u0161u inform\u0101ciju par savu lietot\u0101ju.<br \/>\nAizvietojiet 2000 piem\u0113ros ar savu identifikatoru, un viss b\u016bs k\u0101rt\u012bb\u0101.<\/p>\n<p><\/p>\n<h2>Lietot\u0101ja UID un GID pie\u0161\u0137ir\u0161ana<\/h2>\n<p><\/p>\n<p>Ja lietot\u0101js ir izveidots iepriek\u0161, bet ir nepiecie\u0161ams main\u012bt identifikatorus, to var izdar\u012bt \u0161\u0101di:<\/p>\n<p><\/p>\n<pre><code class=\"nginx\">RUN usermod -u 1000 node \n  &amp;&amp; groupmod -g 1000 node\n<\/code><\/pre>\n<p><\/p>\n<p>Ja j\u016bs izmantojat b\u0101zes att\u0113lu alpine, tad nepiecie\u0161ams instal\u0113t pakotni shadow:<\/p>\n<p><\/p>\n<pre><code class=\"nginx\">RUN apk add \u2014no-cache shadow<\/code><\/pre>\n<p><\/p>\n<h2>Lietot\u0101ja identifikatora nodo\u0161ana konteiner\u0101 att\u0113la b\u016bv\u0113\u0161anas laik\u0101<\/h2>\n<p><\/p>\n<p>Ja j\u016bsu identifikators un visu cilv\u0113ku identifikatori, kas str\u0101d\u0101 pie projekta, sakr\u012bt, tad pietiek nor\u0101d\u012bt \u0161o identifikatoru Dockerfile. Tom\u0113r bie\u017ei vien lietot\u0101ju identifikatori nesakr\u012bt.<\/p>\n<p><\/p>\n<p>K\u0101 to paveikt nav uzreiz skaidrs. Man tas bija visgr\u016bt\u0101kais apg\u016bstot docker. Daudzi docker lietot\u0101ji nedom\u0101 par to, ka past\u0101v da\u017e\u0101das att\u0113la dz\u012bves posma. S\u0101kum\u0101 att\u0113ls tiek veidots, izmantojot Dockerfile. Iedarbinot konteineru no att\u0113la, Dockerfile vairs netiek izmantots.<\/p>\n<p><\/p>\n<p>Lietot\u0101ju veido\u0161ana j\u0101veic att\u0113la b\u016bv\u0113\u0161anas laik\u0101. Tas attiecas ar\u012b uz lietot\u0101ja noteik\u0161anu, no kura tiek izpild\u012bti procesi. T\u0101d\u0113j\u0101di mums k\u0101d\u0101 veid\u0101 j\u0101nodod UID (GID) konteiner\u0101.<\/p>\n<p><\/p>\n<p>Lai izmantotu \u0101r\u0113j\u0101s main\u012bg\u0101s Dockerfile, tiek izmantotas direkt\u012bvas <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/engine\/reference\/builder\/#env\">ENV<\/a><\/noindex> un\u00a0<noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/engine\/reference\/builder\/#arg\">ARG<\/a><\/noindex>. Detaliz\u0113ta direkt\u012bvu sal\u012bdzin\u0101\u0161ana <noindex><a rel=\"nofollow\" href=\"https:\/\/vsupalov.com\/docker-arg-env-variable-guide\/\">\u0161eit<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Dockerfile<\/p>\n<p><\/p>\n<pre><code class=\"nginx\">ARG UID=1000\nARG GID=1000\nENV UID=${UID}\nENV GID=${GID}\nRUN usermod -u $UID node \n  &amp;&amp; groupmod -g $GID node\n<\/code><\/pre>\n<p><\/p>\n<p>Argumentus caur docker-compose var nodot \u0161\u0101di:<\/p>\n<p><\/p>\n<p>docker-compose<\/p>\n<p><\/p>\n<pre><code class=\"nginx\">build:\n  context: .\/src\/backend\n  args:\n    UID: 1000\n    GID: 1000\n<\/code><\/pre>\n<p><\/p>\n<p>P.S. Lai apg\u016btu visas docker nianses, nepietiek ar dokument\u0101cijas vai rakstu las\u012b\u0161anu. Ir nepiecie\u0161ama daudz praktiz\u0113\u0161an\u0101s, j\u0101izj\u016bt docker.<\/p>\n<p>Avots: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/448480\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0410\u043d\u0434\u0440\u0435\u0439 \u041a\u043e\u043f\u044b\u043b\u043e\u0432, \u043d\u0430\u0448 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440, \u043b\u044e\u0431\u0438\u0442, \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0438\u00a0\u043f\u0440\u043e\u043f\u0430\u0433\u0430\u043d\u0434\u0438\u0440\u0443\u0435\u0442 Docker. \u0412 \u043d\u043e\u0432\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043e\u043d \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432\u00a0Docker. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043d\u0438\u043c\u0438, \u043f\u043e\u0447\u0435\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439\u00a0\u043d\u0435\u043b\u044c\u0437\u044f \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u00a0root \u043f\u0440\u0430\u0432\u0430\u043c\u0438 \u0438, \u043a\u0430\u043a \u0440\u0435\u0448\u0438\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443 \u043d\u0435\u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u0432\u00a0Dockerfile. \u0412\u0441\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0432\u00a0\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438\u0437-\u043f\u043e\u0434 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f root, \u0435\u0441\u043b\u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0435\u0433\u043e \u043d\u0435\u00a0\u0443\u043a\u0430\u0437\u0430\u0442\u044c. \u042d\u0442\u043e \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e, \u0432\u0435\u0434\u044c \u0443\u00a0\u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-31915","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.5 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0410\u043d\u0434\u0440\u0435\u0439 \u041a\u043e\u043f\u044b\u043b\u043e\u0432, \u043d\u0430\u0448 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440, \u043b\u044e\u0431\u0438\u0442, \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0438 \u043f\u0440\u043e\u043f\u0430\u0433\u0430\u043d\u0434\u0438\u0440\u0443\u0435\u0442 Docker.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/polzovatel-v-docker\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"lv_LV\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0432 Docker | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0410\u043d\u0434\u0440\u0435\u0439 \u041a\u043e\u043f\u044b\u043b\u043e\u0432, \u043d\u0430\u0448 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440, \u043b\u044e\u0431\u0438\u0442, \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0438 \u043f\u0440\u043e\u043f\u0430\u0433\u0430\u043d\u0434\u0438\u0440\u0443\u0435\u0442 Docker.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/polzovatel-v-docker\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:43:56+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:43:56+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Lietot\u0101js Docker | ProHoster","description":"Andrejs Kopylovs, m\u016bsu tehniskais direktors, m\u012bl, akt\u012bvi izmanto un propagand\u0113 Docker.","canonical_url":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/polzovatel-v-docker","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"lv_LV","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0432 Docker | ProHoster","og:description":"\u0410\u043d\u0434\u0440\u0435\u0439 \u041a\u043e\u043f\u044b\u043b\u043e\u0432, \u043d\u0430\u0448 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440, \u043b\u044e\u0431\u0438\u0442, \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0438 \u043f\u0440\u043e\u043f\u0430\u0433\u0430\u043d\u0434\u0438\u0440\u0443\u0435\u0442 Docker.","og:url":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/polzovatel-v-docker","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:43:56+00:00","article:modified_time":"2019-10-31T18:43:56+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31915","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 08:25:21","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:08:10","updated":"2026-01-21 08:25:21","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/31915","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/comments?post=31915"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/31915\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media?parent=31915"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/categories?post=31915"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/tags?post=31915"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}