{"id":281,"date":"2016-09-26T11:56:56","date_gmt":"2016-09-26T03:56:56","guid":{"rendered":"http:\/\/blog.haostudio.net\/hwp\/?p=281"},"modified":"2017-07-25T00:07:18","modified_gmt":"2017-07-24T16:07:18","slug":"%e6%92%b0%e5%af%ab-dockerfile-%e6%99%82%e9%81%87%e5%88%b0%e7%9a%84%e6%80%aa%e5%95%8f%e9%a1%8c-%e4%bd%bf%e7%94%a8-rm-%e6%8c%87%e4%bb%a4%e7%84%a1%e6%b3%95%e7%a7%bb%e9%99%a4%e6%9f%90%e4%ba%9b%e6%aa%94","status":"publish","type":"post","link":"https:\/\/blog.haostudio.net\/hwp\/%e6%92%b0%e5%af%ab-dockerfile-%e6%99%82%e9%81%87%e5%88%b0%e7%9a%84%e6%80%aa%e5%95%8f%e9%a1%8c-%e4%bd%bf%e7%94%a8-rm-%e6%8c%87%e4%bb%a4%e7%84%a1%e6%b3%95%e7%a7%bb%e9%99%a4%e6%9f%90%e4%ba%9b%e6%aa%94\/","title":{"rendered":"\u64b0\u5beb Dockerfile \u6642\u9047\u5230\u7684\u602a\u554f\u984c , \u4f7f\u7528 rm \u6307\u4ee4\u7121\u6cd5\u79fb\u9664\u67d0\u4e9b\u6a94\u6848"},"content":{"rendered":"<!--more-->\n<h2>\u64b0\u5beb Dockerfile \u6642\u9047\u5230\u7684\u602a\u554f\u984c , \u4f7f\u7528 rm \u6307\u4ee4\u7121\u6cd5\u79fb\u9664\u67d0\u4e9b\u6a94\u6848<\/h2>\n<p>\u624d\u525b\u525b\u5b78\u7fd2docker, \u5c31\u9047\u5230\u9019\u500b\u602a\u73fe\u8c61, \u5728dockerfile \u4e2d \u4f7f\u7528\n<code>rm<\/code> \u53ef\u80fd\u6703\u9020\u6210\u67d0\u4e9b\u6a94\u6848\u7121\u6cd5\u79fb\u9664.<\/p>\n<p>\u6211\u7684\u4f7f\u7528\u74b0\u5883\u5982\u4e0b:<\/p>\n<pre><code>Hardware     : odroid-c2 \nLinux Kernel : Linux odroidc2 3.14.73-odroidc2 #2 SMP PREEMPT Mon Aug 1 14:01:38 CST 2016 aarch64 GNU\/Linux\nOS           : Armbian Debian-Jessie \nDocker       : Docker version 1.12.1, build 23cf638\n<\/code><\/pre>\n<p>\u539f\u59cb\u7684dockerfile \u5982\u4e0b:<\/p>\n<pre><code>FROM ebspace\/aarch64-debian:latest\n\nRUN apt-get update &amp;&amp; \\\n    DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends mysql-server mysql-client  &amp;&amp; \\\n    apt-get autoremove &amp;&amp; \\\n    apt-get clean &amp;&amp; \\\n    rm -rf \/var\/lib\/apt\/lists\/*\n\nRUN \/etc\/init.d\/mysql stop\n\nRUN  rm -rf \/var\/lib\/mysql\/*\n\nRUN mkdir \/docker-entrypoint-initdb.d\n\nVOLUME \/var\/log\/mysql\nVOLUME \/var\/lib\/mysql\n\nEXPOSE 3306\n\nCOPY docker-entrypoint.sh \/entrypoint.sh\nENTRYPOINT [&quot;\/entrypoint.sh&quot;]\n\nCMD [&quot;mysqld&quot;]\n<\/code><\/pre>\n<p>\u641e\u4e86\u597d\u4e45, \u624d\u767c\u73fe\u554f\u984c\u51fa\u73fe\u5728\n<code>RUN  rm -rf \/var\/lib\/mysql\/*<\/code> \u9019\u884c, \u7576\u6211\u5efa\u7acb\u51fa\u4e00\u500bcontainer\u5f8c, \u9032\u53bb\u88e1\u9762\u770b, <code>\/var\/lib\/mysql\/<\/code> \u7adf\u7136\u9084\u6709\u6b98\u7559\u5169\u500b\u7a7a\u76ee\u9304. \u4ee5\u81f3\u65bc\u9020\u6210<code>entrypoint.sh<\/code> \u57f7\u884c\u5931\u6557. \u81f3\u65bc\u70ba\u4f55 rm \u6307\u4ee4\u7121\u6cd5\u522a\u9664, \u6211\u505a\u4e86\u8a31\u591a\u5be6\u9a57,  \u5305\u62ec added delay, sync, mv then delete, delete twice&#8230;..etc \u67d0\u4e9b\u7d44\u5408\u6703\u6210\u529f,\u67d0\u4e9b\u7d44\u5408\u6703\u5931\u6557. \u641e\u5f97\u6211\u597d\u4e82\u554a!! \u4e7e\u8106\u5148\u53bb\u7761\u4e00\u89ba. \u9694\u5929\u8d77\u5e8a\u5f8c\u53bb\u554fgoogle \u5927\u795e.<\/p>\n<p>\u627e\u7684\u53ef\u80fd\u7684\u539f\u56e0\u4e86\u5982\u4e0b:<\/p>\n<ol>\n<li><a href=\"http:\/\/unix.stackexchange.com\/questions\/195975\/cannot-force-remove-directory-in-docker-build\">Cannot (force) remove directory in Docker build<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/docker\/docker\/issues\/783\">unexpected file permission error in container<\/a><\/li>\n<\/ol>\n<p>\u6839\u64da\u4e0a\u9762\u7684\u8a0e\u8ad6, \u61f7\u7591\u662fAUFS filesystem, \u6216\u8005\u662f\u6709\u53ef\u80fd\u662flinux kernel \u7684bug (\u6216\u8a31\u5728 4.4.6 \u7248\u5df2\u7d93\u89e3\u6c7a).  \u4f46\u662f\u6211\u7684linux kernel \u9084\u592a\u820a,  \u800c\u4e14\u53c8\u4e0d\u662fx86 \u7cfb\u7d71. \u6839\u672c\u7121\u6cd5\u66f4\u65b0\u554a.<\/p>\n<p>\u7a81\u7136\u60f3\u5230, \u65e2\u7136\u61f7\u7591\u662fAUFS \u5728\u5b58\u53d6 lower layer \u548c upper layer \u6240\u9020\u6210\u7684\u554f\u984c.  \u90a3\u5c31\u628a\u5b83\u505a\u5728\u540c\u4e00\u500b layer \u5c31\u597d\u4e86\u554a. \u65bc\u662f\u6539\u5bebdockerfile \u5982\u4e0b:<\/p>\n<pre><code>FROM ebspace\/aarch64-debian:latest\n\nRUN apt-get update &amp;&amp; \\\n    DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends mysql-server mysql-client  &amp;&amp; \\\n    apt-get autoremove &amp;&amp; \\\n    apt-get clean &amp;&amp; \\\n    rm -rf \/var\/lib\/apt\/lists\/* &amp;&amp; \\\n    \/etc\/init.d\/mysql stop &amp;&amp; \\\n    rm -rf \/var\/lib\/mysql\/* \n\nRUN mkdir \/docker-entrypoint-initdb.d\n\nVOLUME \/var\/log\/mysql\nVOLUME \/var\/lib\/mysql\n\nEXPOSE 3306\n\nCOPY docker-entrypoint.sh \/entrypoint.sh\nENTRYPOINT [&quot;\/entrypoint.sh&quot;]\n\nCMD [&quot;mysqld&quot;]\n<\/code><\/pre>\n<p>\u679c\u7136\u4e00\u8a66\u5c31\u6210\u529f. \u8b9a!! \u8d95\u7dca\u7559\u4e0b\u7d00\u9304, \u9019\u6a23\u5c31\u4e0d\u6015\u8166\u888b\u53c8\u628a\u9019\u500b\u7d93\u9a57\u7d66 erase \u6389\u4e86.<\/p>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[85,15,2],"tags":[88],"class_list":["post-281","post","type-post","status-publish","format-standard","hentry","category-docker","category-embedded-system","category-linux","tag-docker"],"_links":{"self":[{"href":"https:\/\/blog.haostudio.net\/hwp\/wp-json\/wp\/v2\/posts\/281","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.haostudio.net\/hwp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.haostudio.net\/hwp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.haostudio.net\/hwp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.haostudio.net\/hwp\/wp-json\/wp\/v2\/comments?post=281"}],"version-history":[{"count":2,"href":"https:\/\/blog.haostudio.net\/hwp\/wp-json\/wp\/v2\/posts\/281\/revisions"}],"predecessor-version":[{"id":386,"href":"https:\/\/blog.haostudio.net\/hwp\/wp-json\/wp\/v2\/posts\/281\/revisions\/386"}],"wp:attachment":[{"href":"https:\/\/blog.haostudio.net\/hwp\/wp-json\/wp\/v2\/media?parent=281"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.haostudio.net\/hwp\/wp-json\/wp\/v2\/categories?post=281"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.haostudio.net\/hwp\/wp-json\/wp\/v2\/tags?post=281"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}