{"id":283609,"date":"2017-03-20T17:55:04","date_gmt":"2017-03-20T14:55:04","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=283609"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=283609","title":{"rendered":"\u041a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f Cach\u00e9"},"content":{"rendered":"<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e \u0442\u043e \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u043e\u0431\u0440\u0430\u0437 <a href=\"https:\/\/docs.docker.com\/engine\/getstarted\/\">Docker<\/a> \u0441 InterSystems Cach\u00e9\/Ensemble. <a name=\"habracut\"><\/a><br \/>  \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0441\u0430\u043c\u043e\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u0430, \u0442.\u0435. \u0441 Dockerfile. <a href=\"https:\/\/docs.docker.com\/engine\/reference\/builder\/\">Dockerfile<\/a> \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 yml \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438 \u043f\u043e \u0441\u0431\u043e\u0440\u043a\u0435 \u043e\u0431\u0440\u0430\u0437\u0430.<\/p>\n<p>  \u042f \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430 CentOS, \u0442\u0430\u043a \u043a\u0430\u043a InterSystems \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 RedHat \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b, \u0438 CentOS \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438.<\/p>\n<pre><code>FROM centos:6<\/code><\/pre>\n<p>  \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0435\u0431\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0432\u0442\u043e\u0440\u0430 \u0444\u0430\u0439\u043b\u0430.<\/p>\n<pre><code>MAINTAINER Dmitry Maslennikov &lt;mrdaimor@gmail.com&gt;<\/code><\/pre>\n<p>  \u041f\u0435\u0440\u0432\u044b\u043c \u0448\u0430\u0433\u043e\u043c, \u043d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u043a\u0430\u043a \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438, \u0442\u0430\u043a \u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b Cach\u00e9. \u0417\u0434\u0435\u0441\u044c \u044f \u0435\u0449\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u043f\u043e\u044f\u0441.  <\/p>\n<pre><code># update OS + dependencies & run Cach\u00e9 silent instal RUN yum -y update \\  && yum -y install which tar hostname net-tools wget \\  && yum -y clean all \\   && ln -sf \/etc\/locatime \/usr\/share\/zoneinfo\/Europe\/Moscow<\/code><\/pre>\n<p>  \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043f\u0430\u043f\u043a\u0443, \u0434\u043b\u044f \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430.<\/p>\n<pre><code>ENV TMP_INSTALL_DIR=\/tmp\/distrib<\/code><\/pre>\n<p>  \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435.  <\/p>\n<pre><code>ARG password=&quot;Qwerty@12&quot; ARG cache=ensemble-2016.2.1.803.0<\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438.  <\/p>\n<pre><code>ENV ISC_PACKAGE_INSTANCENAME=&quot;ENSEMBLE&quot; \\     ISC_PACKAGE_INSTALLDIR=&quot;\/opt\/ensemble\/&quot; \\     ISC_PACKAGE_UNICODE=&quot;Y&quot; \\     ISC_PACKAGE_CLIENT_COMPONENTS=&quot;&quot; \\     ISC_PACKAGE_INITIAL_SECURITY=&quot;Normal&quot; \\     ISC_PACKAGE_USER_PASSWORD=${password}<\/code><\/pre>\n<p>  \u042f \u0440\u0435\u0448\u0438\u043b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c Cach\u00e9 \u043d\u0430 \u0443\u0440\u043e\u0432\u0435\u043d\u044c Normal, \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c.<\/p>\n<p>  \u0412 <a href=\"http:\/\/docs.intersystems.com\/latest\/csp\/docbook\/DocBook.UI.Page.cls?KEY=GCI_unix#GCI_unix_install_unattended\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a> \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a.<\/p>\n<p>  \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u043f\u043e\u043a\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u0434\u043b\u044f \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430, \u0434\u0430\u043d\u043d\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u043e\u0439 \u043f\u0430\u043f\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u0435\u0441\u043b\u0438 \u0440\u0430\u043d\u0435\u0435 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0430.  <\/p>\n<pre><code>WORKDIR ${TMP_INSTALL_DIR}<\/code><\/pre>\n<p>  \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0440\u0430\u0437\u0443 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0444\u0430\u0439\u043b \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0435\u0441\u044c \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437 \u0432 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438.  <\/p>\n<pre><code>COPY cache.key $ISC_PACKAGE_INSTALLDIR\/mgr\/<\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438, \u0438 \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0435\u0433\u043e:  <\/p>\n<ul>\n<li>\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432 \u0432\u0440\u0443\u0447\u043d\u0443\u044e, \u0438 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0435\u0433\u043e \u0440\u044f\u0434\u043e\u043c \u0441 \u0444\u0430\u0439\u043b\u043e\u043c Dockerfile, \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0440\u0430\u0437\u0443 \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u0443\u0435\u0442 \u0435\u0433\u043e \u043f\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u043c\u0443 \u043f\u0443\u0442\u0438.<br \/> \n<pre><code>ADD $cache-lnxrhx64.tar.gz .<\/code><\/pre>\n<p>  <\/li>\n<li>\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0441 WRC.<br \/> \n<pre><code>RUN wget -qO \/dev\/null --keep-session-cookies --save-cookies \/dev\/stdout --post-data=&quot;UserName=$WRC_USERNAME&Password=$WRC_PASSWORD&quot; 'https:\/\/login.intersystems.com\/login\/SSO.UI.Login.cls?referrer=https%253A\/\/wrc.intersystems.com\/wrc\/login.csp' \\  | wget -O - --load-cookies \/dev\/stdin &quot;https:\/\/wrc.intersystems.com\/wrc\/WRC.StreamServer.cls?FILE=\/wrc\/distrib\/$cache-lnxrhx64.tar.gz&quot; \\  | tar xvfzC - . <\/code><\/pre>\n<p>\u0412 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043b\u043e\u0433\u0438\u043d \u0438 \u043f\u0430\u0440\u043e\u043b\u044c \u043e\u0442 WRC, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0443, \u0438 \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a \u0441\u043f\u0438\u0441\u043a\u0443 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0435\u0449\u0435 \u0434\u0432\u0430.  <\/p>\n<pre><code>ARG WRC_USERNAME=\u201dusername\u201d ARG WRC_PASSWORD=\u201dpassword\u201d<\/code><\/pre>\n<p>  \u041d\u0443\u0436\u043d\u043e \u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u043b\u044e\u0431\u043e\u0435 \u0443\u043f\u043e\u043c\u043d\u0438\u0430\u043d\u0438\u0435 \u043f\u0430\u0440\u043e\u043b\u0435\u0439 \u0432 Dockerfile \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0438\u0445 \u043f\u043e\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0442\u0430\u0449\u0438\u0442\u044c. \u0422\u0430\u043a \u0447\u0442\u043e \u044d\u0442\u043e \u043d\u0435 \u0441\u0430\u043c\u044b\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431.  <\/li>\n<li>\u0418 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431, \u044d\u0442\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u044b \u043d\u0430 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0435\u0433\u043e \u043e\u0442\u0442\u0443\u0434\u0430 \u0441 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c.<br \/> \n<pre><code>RUN wget -O - &quot;ftp:\/\/ftp.company.com\/cache\/$cache-lnxrhx64.tar.gz&quot; \\  | tar xvfzC - .<\/code><\/pre>\n<\/li>\n<\/ul>\n<p>  \u0412\u0441\u0435 \u0433\u043e\u0442\u043e\u0432\u043e \u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435, \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c.  <\/p>\n<pre><code>RUN .\/$cache-lnxrhx64\/cinstall_silent<\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438, \u043d\u0443\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440.  <\/p>\n<pre><code>RUN ccontrol stop $ISC_PACKAGE_INSTANCENAME quietly<\/code><\/pre>\n<p>  \u041d\u043e \u044d\u0442\u043e \u043d\u0435 \u0432\u0441\u0435, \u0432 Docker \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043d\u0443\u0436\u0435\u043d \u043e\u0434\u0438\u043d \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u0449\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441. \u0418 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043f\u0440\u043e\u0435\u043a\u0442 ccontainermain \u043e\u0442 <a href=\"https:\/\/community.intersystems.com\/user\/luca-ravazzolo\">Luca Ravazzolo<\/a>. \u0417\u0430\u0433\u0440\u0443\u0437\u0438\u043c \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a \u043d\u0430\u043f\u0440\u044f\u043c\u0443 \u0441 <a href=\"https:\/\/github.com\/zrml\/ccontainermain\">\u0433\u0438\u0442\u0445\u0430\u0431\u0430<\/a>.<\/p>\n<pre><code> # Cach\u00e9 container main process PID 1 (https:\/\/github.com\/zrml\/ccontainermain) RUN curl -L https:\/\/github.com\/zrml\/ccontainermain\/raw\/master\/distrib\/linux\/ccontainermain -o \/ccontainermain \\  && chmod +x \/ccontainermain<\/code><\/pre>\n<p>  \u0427\u0438\u0441\u0442\u0438\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043f\u0430\u043f\u043a\u0443.  <\/p>\n<pre><code>RUN rm -rf $TMP_INSTALL_DIR<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0417\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435 \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u0440\u0430\u0439\u0432\u0435\u0440 overlay<\/b><\/p>\n<div class=\"spoiler_text\">\u0415\u0441\u043b\u0438 Docker \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u043c overlay, \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u0438 \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u0431\u0435\u0440\u0442\u043a\u0443 \u043d\u0430\u0434 ccontrol, \u0438\u043d\u0430\u0447\u0435 \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 Cach\u00e9 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0441\u0440\u0430\u0437\u0443 \u0432\u044b\u043f\u0430\u0434\u0430\u0442\u044c \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439 &lt;PROTECT&gt;.  <\/p>\n<pre><code># Workaround for an overlayfs bug which prevents Cache from starting with &lt;PROTECT&gt; errors COPY ccontrol-wrapper.sh \/usr\/bin\/ RUN cd \/usr\/bin \\  && rm ccontrol \\  && mv ccontrol-wrapper.sh ccontrol \\  && chmod 555 ccontrol<\/code><\/pre>\n<p>  \u041a\u043e\u0434 \u043e\u0431\u0435\u0440\u0442\u043a\u0438 ccontrol-wrapper.sh.  <\/p>\n<pre><code class=\"bash\">#!\/bin\/bash  # Work around a weird overlayfs bug where files don't open properly if they haven't been # touched first - see the yum-ovl plugin for a similar workaround if [ &quot;${1,,}&quot; == &quot;start&quot; ]; then     find $ISC_PACKAGE_INSTALLDIR -name CACHE.DAT -exec touch {} \\; fi  \/usr\/local\/etc\/cachesys\/ccontrol $@<\/code><\/pre>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043a\u0430\u043a\u043e\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 Docker \u043c\u043e\u0436\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439.  <\/p>\n<pre><code class=\"bash\">docker info --format '{{.Driver}}'<\/code><\/pre>\n<p>  <a href=\"https:\/\/github.com\/zrml\/ccontainermain\/commit\/d0bd70fda2647dfdc9312bf7beefb9df3d1507da\">Workaround \u0434\u043b\u044f Cach\u00e9<\/a><br \/>  <a href=\"https:\/\/bugzilla.redhat.com\/show_bug.cgi?id=1213602\">\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u0435\u0442\u0430\u043b\u0435\u0439 \u043e \u0431\u0430\u0433\u0435 \u0441 OverlayFS<\/a>  <\/div>\n<\/div>\n<p>  \u041d\u0443\u0436\u043d\u043e \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u044c Docker \u043a\u0430\u043a\u0438\u0435 \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043f\u043e\u0440\u0442\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435, \u044d\u0442\u043e 57772 \u0434\u043b\u044f Web \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0438 1972 \u0434\u043b\u044f \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430, \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043f\u043e\u0440\u0442\u044b \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432 Cach\u00e9.<\/p>\n<pre><code>EXPOSE 57772 1972<\/code><\/pre>\n<p>  \u0418 \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u0441\u043e\u043e\u0431\u0449\u0438\u043c \u043a\u0430\u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440.  <\/p>\n<pre><code>ENTRYPOINT [&quot;\/ccontainermain&quot;, &quot;-cconsole&quot;, &quot;-i&quot;, &quot;ensemble&quot;]<\/code><\/pre>\n<p>  \u0412 \u0438\u0442\u043e\u0433\u0435 \u0444\u0430\u0439\u043b \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0430\u0435\u0442 \u0442\u0430\u043a\u043e\u0439 \u0432\u0438\u0434:<\/p>\n<pre><code>FROM centos:6  MAINTAINER Dmitry Maslennikov &lt;Dmitry.Maslennikov@csystem.cz&gt;  # update OS + dependencies & run Cach\u00e9 silent instal RUN yum -y update \\  && yum -y install which tar hostname net-tools wget \\  && yum -y clean all \\   && ln -sf \/etc\/locatime \/usr\/share\/zoneinfo\/Europe\/Prague  ARG password=&quot;Qwerty@12&quot; ARG cache=ensemble-2016.2.1.803.0  ENV TMP_INSTALL_DIR=\/tmp\/distrib  # vars for Cach\u00e9 silent install ENV ISC_PACKAGE_INSTANCENAME=&quot;ENSEMBLE&quot; \\     ISC_PACKAGE_INSTALLDIR=&quot;\/opt\/ensemble\/&quot; \\     ISC_PACKAGE_UNICODE=&quot;Y&quot; \\     ISC_PACKAGE_CLIENT_COMPONENTS=&quot;&quot; \\     ISC_PACKAGE_INITIAL_SECURITY=&quot;Normal&quot; \\     ISC_PACKAGE_USER_PASSWORD=${password}   # set-up and install Cach\u00e9 from distrib_tmp dir  WORKDIR ${TMP_INSTALL_DIR}  ADD $cache-lnxrhx64.tar.gz .  # cache distributive RUN .\/$cache-lnxrhx64\/cinstall_silent \\  && ccontrol stop $ISC_PACKAGE_INSTANCENAME quietly \\ # Cach\u00e9 container main process PID 1 (https:\/\/github.com\/zrml\/ccontainermain)  && curl -L https:\/\/github.com\/daimor\/ccontainermain\/raw\/master\/distrib\/linux\/ccontainermain -o \/ccontainermain \\  && chmod +x \/ccontainermain \\  && rm -rf $TMP_INSTALL_DIR   WORKDIR ${ISC_PACKAGE_INSTALLDIR}  # TCP sockets that can be accessed if user wants to (see 'docker run -p' flag) EXPOSE 57772 1972  ENTRYPOINT [&quot;\/ccontainermain&quot;, &quot;-cconsole&quot;, &quot;-i&quot;, &quot;ensemble&quot;]<\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0433\u043e\u0442\u043e\u0432\u044b \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437. \u041d\u0443\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0442\u0430\u043a\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0432 \u043f\u0430\u043f\u043a\u0435 \u0433\u0434\u0435 \u043b\u0435\u0436\u0438\u0442 Dockerfile.<br \/>  <code>docker build -t ensemble-simple .<\/code><br \/>  \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0437, \u0438 \u0441\u0430\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 Cach\u00e9.<\/p>\n<p>  \u041f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0442\u0430\u043a.<br \/>  <code>docker build --build-arg password=SuperSecretPassword -t ensemble-simple .<\/code><br \/>  <code>docker build --build-arg cache=ensemble-2016.2.1.803.1 -t ensemble-simple .<\/code><\/p>\n<p>  \u0418 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043e\u0431\u0440\u0430\u0437 \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439.<br \/>  <code>docker run -d -p 57779:57772 -p 1979:1972 ensemble-simple<\/code><br \/>  \u0417\u0434\u0435\u0441\u044c 57779 \u0438 1979, \u044d\u0442\u043e \u043f\u043e\u0440\u0442\u044b \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0441 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b.<\/p>\n<p>  \u0422\u0430\u043a\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u0432\u0441\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b.<br \/>  <code>docker ps<\/code>  <\/p>\n<pre>CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                              NAMES 5f8d2cb3745a        ensemble-simple     &quot;\/ccontainermain -...&quot;   18 seconds ago      Up 17 seconds       0.0.0.0:1979-&gt;1972\/tcp, 0.0.0.0:57779-&gt;57772\/tcp   keen_carson<\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u0440\u0442\u0430\u043b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 <a href=\"http:\/\/localhost:57779\/csp\/sys\/UtilHome.csp\">http:\/\/localhost:57779\/csp\/sys\/UtilHome.csp<\/a>. \u041d\u0430\u0448\u0430 \u043d\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430.<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/d2c\/8f6\/bb1\/d2c8f6bb10539f6d08a183b5976480c3.png\" alt=\"image\"\/><\/p>\n<p>  \u0418\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 \u0433\u0438\u0442\u0445\u0430\u0431\u0435 <a href=\"https:\/\/github.com\/daimor\/docker-intersystems-examples\/tree\/master\/simple\">\u0437\u0434\u0435\u0441\u044c<\/a>.<br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habrahabr.ru\/post\/323746\/\"> https:\/\/habrahabr.ru\/post\/323746\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e \u0442\u043e \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u043e\u0431\u0440\u0430\u0437 <a href=\"https:\/\/docs.docker.com\/engine\/getstarted\/\">Docker<\/a> \u0441 InterSystems Cach\u00e9\/Ensemble. <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-283609","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/283609","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=283609"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/283609\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=283609"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=283609"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=283609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}