{"id":332396,"date":"2022-04-25T15:00:57","date_gmt":"2022-04-25T15:00:57","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=332396"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=332396","title":{"rendered":"<span>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 c\u0435\u0440\u0432\u0435\u0440\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e docker \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u0427\u0430\u0441\u0442\u044c \u0432\u0442\u043e\u0440\u0430\u044f: docker-compose<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/216\/c7b\/14d\/216c7b14d077e06970892e9c5e69eb88.png\" width=\"1280\" height=\"762\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/216\/c7b\/14d\/216c7b14d077e06970892e9c5e69eb88.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041c\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u0446\u0438\u043a\u043b \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u0432: \u0435\u0441\u043b\u0438 \u0432\u044b \u044f\u0432\u043b\u044f\u0435\u0442\u0435\u0441\u044c \u043e\u043f\u044b\u0442\u043d\u044b\u043c \u0430\u0434\u043c\u0438\u043d\u043e\u043c, \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043c\u0435\u043b\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c docker-compose.<\/p>\n<p>\u041d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u0446\u0435\u043b\u044c \u0441\u0435\u0440\u0438\u0438 &#8212; \u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435, \u0430 \u043b\u0438\u0448\u044c \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0430 \u043d\u044e\u0430\u043d\u0441\u044b \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0438 \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432 \u043e\u0442 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0440\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435.<\/p>\n<p>\u0421\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043d\u0430\u0448\u0438 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0441\u0442\u0430\u0442\u044c\u0438:<br \/><a href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/661443\/\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 LEMP \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e docker \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u0427\u0430\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u0430\u044f: \u0411\u0430\u0437\u0430<\/a><\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/645451\/\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 LEMP \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u0441\u0430\u043c\u044b\u0445 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445. \u0427\u0430\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u0430\u044f<\/a><\/p>\n<p>\u0418\u0442\u0430\u043a, \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435\u0439 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0443\u043d\u043a\u0442\u044b:<\/p>\n<ol>\n<li>\n<p>docker-compose.<\/p>\n<ol>\n<li>\n<p>\u0427\u0435\u043c \u0443\u0434\u043e\u0431\u0435\u043d docker-compose?<\/p>\n<\/li>\n<li>\n<p>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430.<\/p>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0435\u043c \u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044e yml-\u0444\u0430\u0439\u043b\u0430.<\/p>\n<p>\u041f\u0443\u043d\u043a\u0442 1. \u0423\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0438.<\/p>\n<p>\u041f\u0443\u043d\u043a\u0442 2. \u041e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u044b.<\/p>\n<p>\u041f\u0443\u043d\u043a\u0442 3. \u041e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u043c\u00a0\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b.<\/p>\n<p>\u041f\u0443\u043d\u043a\u0442 4. \u041b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0435\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432.<\/p>\n<p>\u041f\u0443\u043d\u043a\u0442 4.1. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0438 \u043a\u043b\u044e\u0447\u0438\u00a0\u0444\u0430\u0439\u043b\u0430 docker-compose.<\/p>\n<p>\u041f\u0443\u043d\u043a\u0442 5. \u041f\u0438\u0448\u0435\u043c nginx.<\/p>\n<p>\u041f\u0443\u043d\u043a\u0442 6. \u041f\u0438\u0448\u0435\u043c php-fpm.<\/p>\n<p>\u041f\u0443\u043d\u043a\u0442 7. \u041f\u0438\u0448\u0435\u043c mysql.<\/p>\n<p>\u041f\u0443\u043d\u043a\u0442 8. \u041e\u0431\u0449\u0438\u0439 \u0438\u0442\u043e\u0433\u00a0docker-compose.yml.<\/p>\n<\/li>\n<\/ol>\n<h2>docker-compose.<\/h2>\n<h4>\u0427\u0435\u043c \u0443\u0434\u043e\u0431\u0435\u043d docker-compose?<\/h4>\n<p>docker-compose \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442\u00a0\u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0432\u0441\u0435\u043c\u0438\u00a0\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438 \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 (\u0444\u0430\u0439\u043b &#8212; \u0444\u043e\u0440\u043c\u0430\u0442\u0430 yml). \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u0443\u0447\u0443 <strong>docker run<\/strong> \u0438 \u0434\u043b\u0438\u043d\u043d\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432: \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043b\u0438\u0448\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043e\u0434\u043d\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <strong>docker-compose up<\/strong>, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0432\u0441\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u0434\u043d\u044f\u0442\u044b \u0431\u0435\u0437 \u043d\u0430\u0448\u0435\u0433\u043e \u0432\u043c\u0435\u0448\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430, \u043f\u0440\u0438\u0447\u0435\u043c \u0441\u043e \u0432\u0441\u0435\u043c\u0438\u00a0 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0432 yml-\u0444\u0430\u0439\u043b\u0435.\u00a0\u0422\u0430\u043a\u0436\u0435 docker-compose\u00a0\u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f\u043c\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: gitlab.<\/p>\n<h4>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430.<\/h4>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442. \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e:<\/p>\n<pre><code>\u0441url -L \"https:\/\/github.com\/docker\/compose\/releases\/download\/1.29.2\/docker-compose-$(uname -s)-$(uname -m)\" -o \/usr\/local\/bin\/docker-compose<\/code><\/pre>\n<p>\u0414\u0435\u043b\u0430\u0435\u043c \u0441\u043a\u0430\u0447\u0430\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u043c:<\/p>\n<pre><code>chmod +x \/usr\/local\/bin\/docker-compose<\/code><\/pre>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c:<\/p>\n<pre><code>#:\/# docker-compose --version\u00a0 docker-compose version 1.29.2, build 5becea4c<\/code><\/pre>\n<p>\u0412\u0441\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<h4>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430:<\/h4>\n<p>\u041a\u0430\u043a\u0438\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f?<\/p>\n<ol>\n<li>\n<p>frontend: nginx.<\/p>\n<\/li>\n<li>\n<p>backend: php8.1-fpm.<\/p>\n<\/li>\n<li>\n<p>\u0411\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445: mysql.<\/p>\n<\/li>\n<\/ol>\n<p>\u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e, \u0433\u0434\u0435 \u0431\u0443\u0434\u0435\u0442 \u043b\u0435\u0436\u0430\u0442\u044c docker-compose.yml. \u041c\u044b \u043f\u0440\u0438\u043d\u044f\u043b\u0438 \u0437\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442, \u0447\u0442\u043e \u0432 \u043d\u0430\u0448\u0435\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0432\u0441\u0435 \u0444\u0430\u0439\u043b\u044b docker-compose \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \/var\/apps\/. \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043d\u0435\u0435:<\/p>\n<pre><code>mkdir \/var\/apps cd \/var\/apps<\/code><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u043f\u0440\u043e\u0435\u043a\u0442\u0430:<\/p>\n<pre><code>mkdir DOMAIN_NAME cd DOMAIN_NAME\/<\/code><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0444\u0430\u0439\u043b docker-compose.yml:<\/p>\n<pre><code>touch docker-compose.yml<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0433\u0434\u0435 \u0431\u0443\u0434\u0443\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043d\u0430\u0448\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u043f\u043b\u043e\u0449\u0430\u0434\u043e\u043a, \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 php.ini \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435:<\/p>\n<pre><code>mkdir volumes<\/code><\/pre>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0432\u0441\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043d\u0430\u0448\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432:<\/p>\n<pre><code>cd volumes\/ mkdir etc build<\/code><\/pre>\n<ol>\n<li>\n<p>etc &#8212; \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>build &#8212; \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0441 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 Dockerfile \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0443\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432\u0441\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u043e\u0431\u0440\u0430\u0437\u0430.<\/p>\n<\/li>\n<\/ol>\n<p>\u0414\u0430\u043b\u0435\u0435:<\/p>\n<pre><code>mkdir etc\/nginx etc\/mysql etc\/php-fpm8.1 mkdir etc\/nginx\/sites-enabled etc\/nginx\/ssl etc\/mysql\/conf.d etc\/php-fpm8.1\/fpm.pool.d touch etc\/nginx\/nginx.conf etc\/nginx\/sites-enabled\/DOMAIN_NAME.conf etc\/mysql\/conf.d\/config-file.cnf etc\/php-fpm8.1\/php.ini etc\/php-fpm8.1\/fpm.pool.d\/DOMAIN_NAME.conf mkdir build\/nginx build\/php-fpm8.1 build\/mysql touch build\/nginx\/Dockerfile build\/php-fpm8.1\/Dockerfile build\/mysql\/Dockerfile<\/code><\/pre>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0442\u0430\u043a\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439:<\/p>\n<ul>\n<li>\n<p>app\/\u00a0<\/p>\n<\/li>\n<li>\n<p>volumes\/ (\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c \u0444\u0430\u0439\u043b\u0430\u043c\u0438)<\/p>\n<\/li>\n<li>\n<p>build\/ (\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f c Dockerfile \u0434\u043b\u044f \u043d\u0430\u0448\u0438\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432)<\/p>\n<ul>\n<li>\n<p>mysql\/<br \/>Dockerfile<\/p>\n<\/li>\n<li>\n<p>nginx\/<br \/>Dockerfile<\/p>\n<\/li>\n<li>\n<p>php-fpm8.1\/<br \/>Dockerfile<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>etc\/ (\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0434\u043b\u044f \u043d\u0430\u0448\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432)<\/p>\n<ul>\n<li>\n<p>mysql\/<\/p>\n<ul>\n<li>\n<p>config-file.cnf<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>nginx\/<\/p>\n<ul>\n<li>\n<p>sites-enabled\/<\/p>\n<ul>\n<li>\n<p>\u200b\u200b\u200bDOMAIN_NAME.conf<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>nginx.conf<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>php-fpm8.1\/<\/p>\n<ul>\n<li>\n<p>fpm.pool.d\/<\/p>\n<ul>\n<li>\n<p>DOMAIN_NAME.conf<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>php.ini<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>docker-compose.yml<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0443 \u0438\u043b\u0438 \u0442\u0430\u043a:<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f2c\/5b5\/ca6\/f2c5b5ca6c9241474452273e98783108.png\" width=\"272\" height=\"621\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f2c\/5b5\/ca6\/f2c5b5ca6c9241474452273e98783108.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0412 .\/app\/volumes\/etc\/mysql\/config-file.cnf \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043b\u044f mysql. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043c:<\/p>\n<pre><code>[mysqld] port = 3310 wait_timeout = 9000000 max_allowed_packet = 1024M innodb_buffer_pool_size = 512M innodb_log_buffer_size = 256M innodb_log_file_size = 1G innodb_write_io_threads = 16 innodb_flush_log_at_trx_commit = 0 net_read_timeout=500 net_write_timeout=500 interactive_timeout=600 connect_timeout=500 skip-log-bin # Slow query settings: slow_query_log=1 slow_query_log_file=\/var\/log\/mysql\/slow.log long_query_time=2 # Error query settings: log_error=\/var\/log\/mysql\/mysql_error.log general_log_file=\/var\/log\/mysql\/mysql.log general_log=1<\/code><\/pre>\n<p>\u0412 .\/app\/volumes\/etc\/nginx\/nginx.conf \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043b\u044f nginx \u0438 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438.\u00a0\u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043c:<\/p>\n<pre><code>nginx.conf: user \u00a0nginx;worker_processes \u00a06; error_log \u00a0\/var\/log\/nginx\/error.log warn; pid \u00a0 \u00a0 \u00a0 \u00a0\/var\/run\/nginx.pid; events {\u00a0  worker_connections \u00a016384; }  http { include \u00a0 \u00a0 \u00a0 \/etc\/nginx\/mime.types; default_type \u00a0application\/octet-stream;  \u00a0 \u00a0 log_format \u00a0main \u00a0'$remote_addr - $remote_user [$time_local] \"$request\" '\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 '$status $body_bytes_sent \"$http_referer\" '\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 '\"$http_user_agent\" \"$http_x_forwarded_for\"';  \u00a0 \u00a0 access_log \u00a0\/var\/log\/nginx\/access.log \u00a0main;  \u00a0 \u00a0 ### gzip\u00a0 \u00a0 gzip on;     gzip_disable \"msie6\";  \u00a0 \u00a0 gzip_vary on;     gzip_proxied any;     gzip_comp_level 6;     gzip_buffers 16 8k;     gzip_http_version 1.1;     gzip_types text\/plain text\/css application\/json application\/x-javascript text\/xml application\/xml application\/xml+rss text\/javascript image\/svg+xml;  \u00a0 \u00a0 client_body_buffer_size \u00a0 \u00a0 \u00a0 \u00a0 1m;     client_max_body_size \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a075m;      \u00a0 \u00a0 tcp_nopush on;     tcp_nodelay on;     keepalive_timeout 65;     types_hash_max_size 2048;  \u00a0 \u00a0 sendfile \u00a0 \u00a0 \u00a0 \u00a0on;     #tcp_nopush \u00a0 \u00a0 on;     #gzip \u00a0on;  \u00a0 \u00a0 include \/etc\/nginx\/sites-enabled\/*.conf;          }<\/code><\/pre>\n<p>\u0424\u0430\u0439\u043b \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438\u00a0.\/app\/volumes\/etc\/nginx\/sites-enabled\/DOMAIN_NAME.conf\u00a0\u043c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u0438\u0437 <a href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/661443\/\">\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0438<\/a>.<\/p>\n<p>\u0412 .\/app\/volumes\/etc\/php-fpm8.1\/fpm.pool.d\/DOMAIN_NAME.conf\u00a0\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043b\u044f php-fpm \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438:<\/p>\n<pre><code>[DOMAIN_NAME] listen = 172.16.1.5:9010 \u00a0 ;ip \u0430\u0434\u0440\u0435\u0441 \u0438 \u043f\u043e\u0440\u0442 \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f\u00a0php-fpm \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438. listen.mode = 0666 user = DOMAIN_NAME \u00a0 ;\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438. group = DOMAIN_NAME \u00a0;\u0413\u0440\u0443\u043f\u043f\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438. \u00a0 pm = dynamic   pm.max_children = 50   pm.start_servers = 1   pm.min_spare_servers = 1   pm.max_spare_servers = 35   pm.max_requests = 500   request_terminate_timeout = 5m   request_slowlog_timeout = 2s   slowlog = \/var\/log\/php\/php-fpm.slow.log   php_admin_value[opcache.max_accelerated_files] = 20000   php_admin_value[realpath_cache_size] = 4096K   php_admin_value[realpath_cache_ttl] = 600   php_admin_flag[display_errors] = off;   php_admin_value[error_log] = \/var\/www\/DOMAIN_NAME\/log\/php-fpm\/fpm-php.log   php_admin_flag[log_errors] = on   php_admin_value[open_basedir] = \/var\/www\/DOMAIN_NAME   php_admin_value[upload_tmp_dir] = \/var\/www\/DOMAIN_NAME\/upload   php_admin_value[session.save_path] = \/var\/www\/DOMAIN_NAME\/sess<\/code><\/pre>\n<p>\u0412 .\/app\/volumes\/etc\/php-fpm8.1\/php.ini \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0432\u0441\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043b\u044f php. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043c:<\/p>\n<pre><code>upload_max_filesize = 500 Mmax_file_uploads = 20 post_max_size = 500 Mmemory_limit = 4096 Mdate.timezone = Europe\/Moscow<\/code><\/pre>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u043c\u0438 \u043e\u0447\u0438\u0441\u0442\u0438\u043c \u0432\u0441\u0435\u00a0\u043e\u0431\u0440\u0430\u0437\u044b, \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0440\u0430\u043d\u0435\u0435 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0430:\u00a0<\/p>\n<pre><code>docker system prune --volumes --all<\/code><\/pre>\n<p>\u042d\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043e\u0447\u0438\u0449\u0430\u0435\u0442 \u0432\u0441\u0435 \u043e\u0431\u0440\u0430\u0437\u044b \u043d\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432. \u0412\u0430\u0436\u043d\u043e\u0435 \u0443\u0442\u043e\u0447\u043d\u0435\u043d\u0438\u0435 &#8212; \u0438\u043c\u0435\u043d\u043d\u043e <em>\u043d\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0445<\/em>!<\/p>\n<p>\u0421\u043c\u043e\u0442\u0440\u0438\u043c \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b:<\/p>\n<pre><code>docker ps CONTAINER ID \u00a0 IMAGE \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 COMMAND\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 CREATED\u00a0 \u00a0 \u00a0 \u00a0 STATUS\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 PORTS\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 NAMES 5f3353afe4fc \u00a0 nginx:stable\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \"\/docker-entrypoint.\u2026\" \u00a0 4 months ago \u00a0 Up About a minute \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 0.0.0.0:80->80\/tcp, :::80->80\/tcp, 0.0.0.0:443->443\/tcp, :::443->443\/tcp \u00a0 nginx 88c83f238c5c \u00a0 php-fpm \u00a0 \u00a0 \u00a0           \u00a0 \u00a0 \"\/docker-entrypoint.\u2026\" \u00a0 4 months ago \u00a0 Up About a minute \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 9000\/tcp \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 php-fpm<\/code><\/pre>\n<p>\u0414\u043b\u044f \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432\u0441\u0435\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code>docker stop $(docker ps -a -q)<\/code><\/pre>\n<pre><code>docker stop $(docker ps -a -q) 5f3353afe4fc 88c83f238c5c<\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043e\u0447\u0438\u0449\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0437\u044b \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 docker system prune &#8212;volumes &#8212;all:<\/p>\n<pre><code>:~# docker system prune --volumes --all WARNING! This will remove: \u00a0\u00a0- all stopped containers \u00a0\u00a0- all networks not used by at least one container \u00a0\u00a0- all volumes not used by at least one container \u00a0\u00a0- all images without at least one container associated to them \u00a0\u00a0- all build cache Are you sure you want to continue? [y\/N] y  Deleted Containers: d25fadd1ace48b1e1d7285c79c924928fd2df54395f3cab9d1184bf25745404f a156787f2e2d20585272f90b86fbfd82c6ff28fd6bd3e17785be1530e0dcf433 034a89f5322498cd272436515a43a9d82e0f32cdbd2da230a8211f1af7134619 c422454c2b997aec3e473998b3f51cbe5b322c00c094de9bfc20aba3af403830 5f3353afe4fc381fb2aa554700fb0a37ef378e923b5662241549722b243f84ea 88c83f238c5cfe7c71293793d54149e5e6aaf9db92dce9f0f1c9ac2e5e35be3c 77f498f59e80623dd325f6297dcc1c0b068c0fc0b373ca5c137d49052f71276f Deleted Networks: default docker_default Deleted Volumes: 171304f87cde0dbe4142c80e10e30076acfdae1c9d1ac0ed73125e8938bd13af 65e26f00da5308b81afe3d870d63243716df4935445b25648c5c69392151fefe a016235f662b38c657f5e04283fc54d779d18c6e9d778c04e2a5fc264fec428b a20375ceb893d7ae95c2b5ffd10c8557b49f02896a456c22a9015d17f34bd490 untagged: nginx:stable untagged: nginx@sha256:74fb4c9d7e4fe6a8ab699d66fb5ffbf3daf1025bbb6f65a3217dde6e8f4d6e56 deleted: sha256:50fe74b50e0d0258922495297efbb9ebc3cbd5742103df1ca54dc21c07d24575 deleted: sha256:5c89b8cf56a58aa2a96ab1ed19ffd8e0630355776b1db7082fd897f8a5d285d4 deleted: sha256:e45a683cc5d56e842fc90c7ad0535abb1e909f733c2c0c29f4cf43f7247f8438 deleted: sha256:7ffdf2d40e75d1028ecbdba3cd5c548dc7a2b6c6b6598c2ff0af1f864df662e8 deleted: sha256:43828a7cbba35611955d78d1849ba6e48f176c96795ea881a7a9adcf5eb23bfa deleted: sha256:e6ffc9b8132b8380efc5dd578d3e369890abaa492863968a5c41bdf9a8e5070e deleted: sha256:2edcec3590a4ec7f40cf0743c15d78fb39d8326bc029073b41ef9727da6c851f untagged: php-fpm:latest deleted: sha256:cac496cb3198354a8bf68188c5cec929ba149e4f8f331c32f38e45ecc0bd0e67 deleted: sha256:21c4defd66f2e9e64c7b331a7580466403d4e2008d12864f2a29790ff1473a76 deleted: sha256:90f506af9c6530b6cc3c27ad661a9f4c4bfe64a57f313bad65ab67064ca7a880 deleted: sha256:45e703bc20b6aa77dd834ae2c81d1889be7a8b025d7570aa6034569210f25612 deleted: sha256:0f9ac9b1acec55805e6a2cb53b85406b39b07c5154bea03dc575f632e860cff9 deleted: sha256:5e1a9584d37f2f438eb4f9719591b72d9113d0b93e9fd336ee61e9653faaf156 deleted: sha256:bf23cc62c0e983ea1ed5b3b38bd78a86d26ab85de691802a81a800475a1a4e75 deleted: sha256:adf7df76ecb09fcd0fb8c283c8ac1aada505ed57bfa733461cc555d8ca23a816 deleted: sha256:2e09cf02796f006bde367ee89fcfd0053abbf080ef240e715343d6ead0b44851 deleted: sha256:c41477d2876d165d26869efd878a6e3b2fee7fafa10e51c5246909b6622d3b2c deleted: sha256:9f0f98eb9fa7bd5d06653241253eda67fd08326b2634e903bb66dea0e2fb5139 deleted: sha256:4442cb52388be2f9a3ba0e6d6682e87d4586677d94c31af9064fc9315d0370cc deleted: sha256:7ea425a7c077487583d85343140c2200a35bf98839a7228a789c74d4419c708f deleted: sha256:cf3704308d18d0e52028613a7795a39658b02f345c647cf6aa0d82ec6dd51908 deleted: sha256:d943dbca5ecfa509906e2644be6e918c1c5961914271a320b895923c5324014f deleted: sha256:ffc6430b96530f2b7d3f53e1cc64ec24852d9a1a826f687d87e0f6e4eec54869 deleted: sha256:8e32d40714a5cca10289b3fc0ded459b05320abc120bee3525f17c696c4bdb2e deleted: sha256:3c4d7d6769cd7accbd1ccf61175010a1dfabbe435dab26ec2d771daba9de6f86 deleted: sha256:49143d13ba872d32b27bb2765beb496ac60d6b85414cd371a518c9946ec90b25 deleted: sha256:4883d13c15029dd0eab0e9fb7b3e00d8b0139e0d643e4c6e4bc144228e9e7e8f deleted: sha256:2004464b54089dd15804882cb4803381532e0589d38f47f9729f7fb6ef169c34 deleted: sha256:c71714a613ec902f20bf8dce9866f62702302994af53bdd104331c19c7339da4 deleted: sha256:b1783cc83184509d3fffd30ba119ea1f11ec8602fdc50ba2c3e062e02df56e80 deleted: sha256:3e84bd99827c4963eab48a3e54bd088f7a206adb3aacd45361027327d5ca8443 deleted: sha256:d10560a7f2e4534ce146753b0748f1e73ce1b50f458f1e12385e19222b221b69 deleted: sha256:9c84657b917192c0490faf836824a113e6c397146db7a73fc2dc47755224c026 deleted: sha256:c13bd6861c9c7576cb27df56517347b5b7b28e68ce93e69a6ff25d8f1b4b4f6e deleted: sha256:ced7cbb4abb893d33743c81fcbe3caf9c64da09a6fd9fa2f75efdfa0fd6efd6b deleted: sha256:32f19a4eb0921d3b110352c4bdcdc7b64bd47092e1e15fe918e94cf6039037d8 deleted: sha256:054e2126fd90e29711637456090b61fc9b883eeb95ccf94430026ab7d5d14541 deleted: sha256:e8f41b5970d0e2b904babde28c490135b83b0a0be9ff7101171c203cc23af5fb deleted: sha256:e022aa4b2c5f34b58acd5050d77cc23c087395010ab525ae9802ddc0ea52559c deleted: sha256:ebdafce0fbc3adbde2ec9308930be55d3df801a2f62b31bd5b0b1162a54fea7e deleted: sha256:c3744e7ff118e96f517ff1b4f97ee8ee62695d7cf97aec267b9bd73df77581ee deleted: sha256:3b56d7cccfcf2579595d9d21f0788129276743ea2957f05cd9e49317fefd852f deleted: sha256:d204f4d10e96af88215de15a6b47de64668572bfe9f143bc17f0adf0285c02bd deleted: sha256:8c5518abda1bc707b21cc845ea17ebf5dcb4d05f8b5b5164d863255ea59390d4 deleted: sha256:9321ff862abbe8e1532076e5fdc932371eff562334ac86984a836d77dfb717f5 Total reclaimed space: 1.813GB<\/code><\/pre>\n<p>\u0412\u0441\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0438 \u043e\u0431\u0440\u0430\u0437\u044b \u0431\u044b\u043b\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u044b \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.<\/p>\n<p>\u0411\u0430\u0437\u043e\u0432\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430.<\/p>\n<h2>\u041f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0435\u043c \u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u043d\u0430\u0448\u0435\u0433\u043e yml-\u0444\u0430\u0439\u043b\u0430.<\/h2>\n<p>\u0412\u041d\u0418\u041c\u0410\u041d\u0418\u0415! \u0412\u0430\u0436\u043d\u043e\u0435 \u0443\u0442\u043e\u0447\u043d\u0435\u043d\u0438\u0435: \u0442\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e \u0444\u0430\u0439\u043b \u0444\u043e\u0440\u043c\u0430\u0442\u0430 yml, \u0432 \u043d\u0435\u043c \u043e\u0447\u0435\u043d\u044c \u0441\u0442\u0440\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u043f\u0440\u043e\u0431\u0435\u043b\u0430\u043c\u0438 \u0438 \u043e\u0442\u0441\u0442\u0443\u043f\u0430\u043c\u0438 \u0438 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c TAB. \u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443 &#8212; \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043b\u0438\u0448\u043d\u0438\u0439 \u043f\u0440\u043e\u0431\u0435\u043b \u0433\u0434\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u0432 80-\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435, \u043d\u0430 \u043f\u043e\u0438\u0441\u043a \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0443 \u0432\u0430\u0441 \u043c\u043e\u0436\u0435\u0442 \u0443\u0439\u0442\u0438 \u043d\u0435 \u043e\u0434\u0438\u043d \u0447\u0430\u0441 =). <\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/65a\/a17\/406\/65aa174069c4a35c92862aa5542631f7.png\" width=\"355\" height=\"268\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/65a\/a17\/406\/65aa174069c4a35c92862aa5542631f7.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0418\u0442\u0430\u043a, \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c docker-compose.yml.<\/p>\n<h4>\u041f\u0443\u043d\u043a\u0442 1. \u0423\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0438.<\/h4>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c, \u043a\u0430\u043a\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e docker-compose \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0432\u0435\u0440\u0441\u0438\u044e 2.4 &#8212; \u0435\u0451 \u043d\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u0432\u043f\u043e\u043b\u043d\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e.\u00a0<\/p>\n<p>\u0414\u043b\u044f \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438, \u0438 \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u043e\u043d\u0438 \u043d\u0443\u0436\u043d\u044b, \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043c\u0430\u043d\u0443\u0430\u043b \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0432\u043e\u0434\u0443: <a href=\"https:\/\/docs.docker.com\/compose\/compose-file\/compose-versioning\/\">version.<\/a><\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c:<\/p>\n<pre><code class=\"yaml\">version: '2.4'<\/code><\/pre>\n<h4>\u041f\u0443\u043d\u043a\u0442 2. \u041e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u044b.<\/h4>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c:<\/p>\n<pre><code class=\"yaml\">services:<\/code><\/pre>\n<p>\u041c\u044b \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u043c, \u0447\u0442\u043e \u0434\u0430\u043b\u0435\u0435 \u0431\u0443\u0434\u0443\u0442 \u0438\u0434\u0442\u0438 \u043d\u0430\u0448\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b.<\/p>\n<h4>\u041f\u0443\u043d\u043a\u0442 3. \u041e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b.<\/h4>\n<p>\u041d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e \u0444\u043e\u0440\u043c\u0430\u0442 yml, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0435\u043b\u0430\u0435\u043c \u0434\u0432\u0430 \u043f\u0440\u043e\u0431\u0435\u043b\u0430 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c:<\/p>\n<pre><code class=\"yaml\">nginx: php-fpm8.1: mysql:<\/code><\/pre>\n<p>\u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u044d\u0442\u043e \u0442\u0430\u043a:<\/p>\n<pre><code class=\"yaml\">version: '2.4' services: \u00a0\u00a0nginx: \u00a0\u00a0php-fpm8.1: \u00a0\u00a0mysql:<\/code><\/pre>\n<h4>\u041f\u0443\u043d\u043a\u0442 4: \u041b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0435\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432.<\/h4>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043e\u0431\u044c\u044f\u0432\u0438\u043c \u043d\u0430\u0448\u0443 \u0441\u0435\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u0431\u043e\u043b\u044c\u0448\u0435 \u043a \u043d\u0435\u0439 \u043d\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f. \u0417\u0430 \u0441\u0435\u0442\u044c \u0443 \u043d\u0430\u0441 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043a\u043b\u044e\u0447 networks.<\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0442\u0430\u043a\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438:\u00a0<\/p>\n<pre><code class=\"yaml\">networks: \u00a0\u00a0default: \u00a0\u00a0\u00a0\u00a0driver: bridge \u00a0\u00a0\u00a0\u00a0ipam: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0config: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- subnet: 172.16.1.0\/24<\/code><\/pre>\n<ol>\n<li>\n<p>default &#8212; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043d\u0430\u0448\u0435\u0439 \u0441\u0435\u0442\u0438. \u041c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435.<\/p>\n<\/li>\n<li>\n<p>driver &#8212; \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u043d\u0430\u0448\u0435\u0439 \u0441\u0435\u0442\u0438.\u00a0<\/p>\n<\/li>\n<li>\n<p>ipam &#8212; \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0441\u0435\u0442\u0438. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043d\u0430\u0448\u0443 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u043e\u0434\u0441\u0435\u0442\u044c 172.16.1.0\/24<\/p>\n<\/li>\n<\/ol>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c:<\/p>\n<pre><code class=\"yaml\">version: '2.4' services: nginx: php-fpm8.1:   mysql:  networks: default:   driver: bridge     ipam:     config:       - subnet: 172.16.1.0\/24<\/code><\/pre>\n<h4>\u041f\u0443\u043d\u043a\u0442 4.5. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0438 \u043a\u043b\u044e\u0447\u0438 \u043d\u0430\u0448\u0435\u0433\u043e \u0444\u0430\u0439\u043b\u0430 docker-compose.<\/h4>\n<ol>\n<li>\n<p>container_name: &#8212; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430;<\/p>\n<\/li>\n<li>\n<p>hostname: &#8212; hostname \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435;<\/p>\n<\/li>\n<li>\n<p>build: &#8212; \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0444\u0430\u0439\u043b Dockerfile, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0443\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432\u0441\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u043e\u0431\u0440\u0430\u0437\u0430;<\/p>\n<\/li>\n<li>\n<p>extra_hosts: &#8212; \u043f\u0443\u043d\u043a\u0442, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c, \u043a\u0430\u043a\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0431\u0443\u0434\u0435\u0442 \u0432 hosts \u043d\u0430 \u043d\u0430\u0448\u0435\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435;<\/p>\n<\/li>\n<li>\n<p>ports: &#8212; \u043f\u043e\u0440\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u0440\u043e\u043a\u0438\u043d\u0443\u0442\u044c \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440;<\/p>\n<\/li>\n<li>\n<p>volumes: &#8212; \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u0440\u043e\u043a\u0438\u043d\u0443\u0442\u044c \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440.<\/p>\n<p>\u0414\u043b\u044f \u0447\u0435\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0442\u044c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440? \u041a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440, \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0443\u0442 \u0443\u0434\u0430\u043b\u044f\u0442\u044c\u0441\u044f \u0432\u0441\u0435 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u043b\u043e, \u043c\u044b \u043f\u0440\u043e\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440. \u041f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0432\u0441\u0435 \u0444\u0430\u0439\u043b\u044b \u0431\u0443\u0434\u0443\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0445\u043e\u0441\u0442-\u043c\u0430\u0448\u0438\u043d\u0435,\u00a0\u0438 \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e,\u00a0\u043a\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0440\u0430\u043d \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440, \u0444\u0430\u0439\u043b\u044b \u0431\u0443\u0434\u0443\u0442 \u0432 \u0446\u0435\u043b\u043e\u0441\u0442\u0438 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: \u0423 \u043d\u0430\u0441 \u0438\u043c\u0435\u0435\u0442\u0441\u044f mysql \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435. \u0415\u0441\u043b\u0438 \u043c\u044b \u043d\u0435 \u043f\u0440\u043e\u0431\u0440\u043e\u0441\u0438\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0441 \u0411\u0414, \u0442\u043e \u0432\u0441\u0435 \u043d\u0430\u0448\u0438 \u0411\u0414 \u0431\u0443\u0434\u0443 \u0443\u0434\u0430\u043b\u0435\u043d\u044b \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043c\u044b \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0435\u0440\u0435\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440.\u00a0\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u043e\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u043d\u0443\u0436\u043d\u044b\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438. \u042d\u0442\u043e \u0432\u0430\u0436\u043d\u043e!<\/p>\n<\/li>\n<li>\n<p>networks: &#8212; ip \u0430\u0434\u0440\u0435\u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043f\u0440\u0438\u0441\u0432\u043e\u0438\u043c \u043d\u0430\u0448\u0435\u043c\u0443 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0443;<\/p>\n<\/li>\n<li>\n<p>links: &#8212; \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>restart: &#8212; \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0448\u0438\u0431\u043a\u0438.<\/p>\n<\/li>\n<\/ol>\n<h4>\u041f\u0443\u043d\u043a\u0442 5. \u041f\u0438\u0448\u0435\u043c nginx.<\/h4>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0441\u0442\u0440\u043e\u0447\u043a\u0435 nginx \u0438 \u0434\u0435\u043b\u0430\u0435\u043c \u043e\u0442\u0441\u0442\u0443\u043f 4 \u043f\u0440\u043e\u0431\u0435\u043b\u0430. \u0424\u043e\u0440\u043c\u0430\u0442 yml (\u0434\u0430, \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u0443 \u044d\u0442\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c:)).<\/p>\n<h3>\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 container_name:<\/h3>\n<pre><code class=\"yaml\">container_name: DOMAIN_NAME-nginx<\/code><\/pre>\n<h3>\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c hostname:<\/h3>\n<pre><code class=\"yaml\">hostname: DOMAIN_NAME-nginx<\/code><\/pre>\n<h3>\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043c\u0435\u0441\u0442\u043e\u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043d\u0430\u0448\u0435\u0433\u043e Dockerfile \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 build:<\/h3>\n<pre><code class=\"yaml\">build: .\/volumes\/build\/nginx<\/code><\/pre>\n<h3>\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u043a\u0438\u043d\u0443\u0442\u044c \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e volumes. \u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u043a\u0438\u043d\u0443\u0442\u044c:<\/h3>\n<ol>\n<li>\n<p>\u0424\u0430\u0439\u043b\u044b \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438. \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0441\u0442\u0430\u0442\u0438\u043a\u043e\u0439.<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e nginx. \u0414\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438. \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0441 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\u043c\u0438 ssl. \u0414\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e https.<\/p>\n<\/li>\n<li>\n<p>\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0441 log-\u0444\u0430\u0439\u043b\u043e\u043c nginx. \u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c.<\/p>\n<\/li>\n<\/ol>\n<p>\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c volumes \u0438 \u043f\u0440\u043e\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0447\u0435\u0440\u0435\u0437 \u0434\u0435\u0444\u0438\u0441:<\/p>\n<pre><code class=\"yaml\">\u00a0\u00a0\u00a0\u00a0volumes: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- .\/var\/log\/nginx:\/var\/log\/nginx #log \u0444\u0430\u0439\u043b\u044b. \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- .\/volumes\/etc\/nginx\/nginx.conf:\/etc\/nginx\/nginx.conf:ro #\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f nginx. \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- .\/volumes\/etc\/nginx\/sites-enabled:\/etc\/nginx\/sites-enabled:ro #\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043f\u043b\u043e\u0449\u0430\u0434\u043e\u043a. \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- .\/volumes\/etc\/nginx\/ssl:\/etc\/nginx\/ssl:ro #\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- \/var\/www\/DOMAIN_NAME:\/var\/www\/DOMAIN_NAME #\u0414\u043e\u043c\u0430\u0448\u043d\u044f\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f<\/code><\/pre>\n<p>\u041a\u043b\u044e\u0447 <strong>:ro<\/strong> \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 <strong>read only<\/strong>. \u041e\u043d \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0434\u043b\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0447\u0442\u043e\u0431\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043d\u0435\u043b\u044c\u0437\u044f \u0431\u044b\u043b\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c\u00a0\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b.<\/p>\n<h3>\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043f\u043e\u0440\u0442\u044b ports:<\/h3>\n<p>\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u043e\u0440\u0442\u044b 80 \u0438 443 \u043d\u0430 \u0445\u043e\u0441\u0442\u0435 \u0438 \u043f\u0440\u043e\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u043c \u0438\u0445 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440.<\/p>\n<pre><code class=\"yaml\">\u00a0\u00a0\u00a0\u00a0ports: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- \"80:80\" \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- \"443:443\"<\/code><\/pre>\n<h3>\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 links:<\/h3>\n<pre><code class=\"yaml\">\u00a0\u00a0\u00a0\u00a0links: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- php-fpm<\/code><\/pre>\n<p>\u041a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 nginx\u00a0 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0447\u0435\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0441 php-fpm. \u0414\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u00a0\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0435 \u0432\u0438\u0434\u0435\u043b\u0438 502 \u043a\u043e\u0434 \u043e\u0442\u0432\u0435\u0442\u0430, \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432.<\/p>\n<h3>\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0443 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0448\u0438\u0431\u043a\u0438:<\/h3>\n<pre><code class=\"yaml\">\u00a0\u00a0\u00a0\u00a0restart: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0always<\/code><\/pre>\n<h3>\u041f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c ip \u0430\u0434\u0440\u0435\u0441 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e networks:<\/h3>\n<pre><code class=\"yaml\">\u00a0\u00a0\u00a0\u00a0\u00a0networks: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 default: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0ipv4_address: 172.16.1.4<\/code><\/pre>\n<h3>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0443\u00a0\u0442\u0430\u043a:<\/h3>\n<pre><code class=\"yaml\">\u00a0nginx: \u00a0\u00a0\u00a0\u00a0container_name: DOMAIN_NAME-nginx \u00a0\u00a0\u00a0\u00a0hostname: DOMAIN_NAME-nginx \u00a0\u00a0\u00a0\u00a0build: .\/volumes\/build\/nginx \u00a0\u00a0\u00a0\u00a0volumes: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- .\/var\/log\/nginx:\/var\/log\/nginx #log \u0444\u0430\u0439\u043b\u044b. \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- .\/volumes\/etc\/nginx\/nginx.conf:\/etc\/nginx\/nginx.conf:ro #\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f nginx. \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- .\/volumes\/etc\/nginx\/sites-enabled:\/etc\/nginx\/sites-enabled:ro #\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043f\u043b\u043e\u0449\u0430\u0434\u043e\u043a. \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- .\/volumes\/etc\/nginx\/ssl:\/etc\/nginx\/ssl:ro #\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- \/var\/www\/DOMAIN_NAME:\/var\/www\/DOMAIN_NAME #\u0414\u043e\u043c\u0430\u0448\u043d\u044f\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u00a0\u00a0\u00a0\u00a0ports: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- \"80:80\" \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- \"443:443\" \u00a0\u00a0\u00a0\u00a0links: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- php-fpm \u00a0\u00a0\u00a0\u00a0restart: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0always  networks: \u00a0\u00a0default: \u00a0\u00a0\u00a0\u00a0ipv4_address: 172.16.1.4<\/code><\/pre>\n<p>\u00a0\u0410\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c:<\/p>\n<p>\u0423 \u043d\u0430\u0441 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 <strong>nginx<\/strong>:<\/p>\n<ul>\n<li>\n<p>\u0421 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c\u00a0 <strong>DOMAIN_NAME-nginx<\/strong><\/p>\n<\/li>\n<li>\n<p>hostname \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 <strong>DOMAIN_NAME-nginx<\/strong><\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0438\u0437 \u043d\u0430\u0448\u0435\u0433\u043e Dockerfile \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <strong>.\/volumes\/build\/nginx<\/strong><\/p>\n<\/li>\n<li>\n<p>\u0421 \u043f\u0440\u043e\u043a\u0438\u043d\u0443\u0442\u044b\u043c\u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u043c\u0438 \u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 <strong>.\/var\/log\/nginx, .\/volumes\/etc\/nginx\/nginx.conf, .\/volumes\/etc\/nginx\/sites-enabled\/, .\/volumes\/etc\/nginx\/ssl\/, \/var\/www\/DOMAIN_NAME\/<\/strong><\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043d\u0430 <strong>80<\/strong> \u0438 <strong>443<\/strong> \u043f\u043e\u0440\u0442\u0430\u0445 \u0445\u043e\u0441\u0442 \u043c\u0430\u0448\u0438\u043d\u044b<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 <strong>php-fpm<\/strong><\/p>\n<\/li>\n<li>\n<p>\u0427\u0430\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u0439 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u0441 ip \u0430\u0434\u0440\u0435\u0441\u043e\u043c <strong>172.16.1.4<\/strong>.<\/p>\n<\/li>\n<\/ul>\n<h4>\u041f\u0443\u043d\u043a\u0442 6. \u041f\u0438\u0448\u0435\u043c php-fpm.<\/h4>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0441\u0442\u0440\u043e\u043a\u0435 php-fpm.<\/p>\n<h3>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435:<\/h3>\n<pre><code class=\"yaml\">\u00a0\u00a0\u00a0\u00a0container_name: DOMAIN_NAME-php-fpm<\/code><\/pre>\n<h3>Hostname:<\/h3>\n<pre><code class=\"yaml\">\u00a0\u00a0\u00a0hostname: DOMAIN_NAME-php-fpm<\/code><\/pre>\n<h3>\u0420\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 Dockerfile:<\/h3>\n<pre><code class=\"yaml\">\u00a0\u00a0\u00a0\u00a0build: .\/volumes\/php-fpm\/build<\/code><\/pre>\n<h3>\u041f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 links: \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e.<\/h3>\n<h3>\u041f\u043e\u0440\u0442\u044b:<\/h3>\n<pre><code class=\"yaml\">\u00a0\u00a0\u00a0ports: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- \"9000:9010\"<\/code><\/pre>\n<h3>\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u043a\u0438\u043d\u0443\u0442\u044c:<\/h3>\n<ol>\n<li>\n<p>\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438.<\/p>\n<\/li>\n<li>\n<p>php.ini php-fpm \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 (\u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438).<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438.<\/p>\n<\/li>\n<li>\n<p>log \u0444\u0430\u0439\u043b php.<\/p>\n<\/li>\n<\/ol>\n<p>\u041f\u0440\u043e\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u043c:<\/p>\n<pre><code class=\"yaml\">\u00a0\u00a0\u00a0\u00a0volumes: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- .\/volumes\/etc\/php\/fpm.pool.d\/DOMAIN_NAME.conf:\/usr\/local\/etc\/php-fpm.d\/DOMAIN_NAME.conf:ro #\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- .\/volumes\/etc\/php\/nxs-std.ini:\/usr\/local\/etc\/php\/conf.d\/nxs-std.ini:ro #\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f php \u0434\u043b\u044f php-fpm \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- \/var\/log\/php:\/var\/log\/php #log \u0444\u0430\u0439\u043b\u044b \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- \/var\/www\/DOMAIN_NAME:\/var\/www\/DOMAIN_NAME #\u0414\u043e\u043c\u0430\u0448\u043d\u044f\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f<\/code><\/pre>\n<h3>IP \u0430\u0434\u0440\u0435\u0441:<\/h3>\n<pre><code class=\"yaml\">\u00a0\u00a0\u00a0\u00a0networks: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0default: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ipv4_address: 172.16.1.5<\/code><\/pre>\n<h3>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 \u0432\u0441\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0434\u043e\u043a\u0435\u0440\u0435 php:<\/h3>\n<pre><code class=\"yaml\">\u00a0\u00a0\u00a0\u00a0cap_add: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- SYS_NICE \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- DAC_READ_SEARCH<\/code><\/pre>\n<p>\u0414\u043b\u044f \u0447\u0435\u0433\u043e \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e? \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 php-fpm \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430. \u0415\u0441\u043b\u0438 \u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043e\u0448\u0438\u0431\u043a\u0443:<\/p>\n<p><code>mbind: Operation not permitted<\/code><\/p>\n<p>\u0418\u043b\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0430 \u0443 \u043d\u0430\u0441 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f DOMAIN_NAME. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435, php-fpm \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443. \u0415\u0441\u043b\u0438 \u0441\u0442\u0440\u043e\u043a\u0438 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442, \u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430.<\/p>\n<h3>\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430:<\/h3>\n<pre><code class=\"yaml\">\u00a0\u00a0\u00a0\u00a0restart: always<\/code><\/pre>\n<h3>\u0418\u0442\u043e\u0433:<\/h3>\n<pre><code class=\"yaml\">\u00a0\u00a0php-fpm: \u00a0\u00a0\u00a0\u00a0container_name: DOMAIN_NAME-php-fpm \u00a0\u00a0\u00a0\u00a0hostname: DOMAIN_NAME-php-fpm \u00a0\u00a0\u00a0\u00a0build: .\/volumes\/php-fpm\/build \u00a0\u00a0\u00a0\u00a0ports: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- \"9000:9010\" \u00a0\u00a0\u00a0\u00a0volumes:  \u00a0\u00a0\u00a0\u00a0\u00a0- .\/volumes\/etc\/php\/fpm.pool.d\/DOMAIN_NAME.conf:\/usr\/local\/etc\/php-fpm.d\/DOMAIN_NAME.conf:ro #\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- .\/volumes\/etc\/php\/php.ini:\/usr\/local\/etc\/php\/conf.d\/nxs-std.ini:ro #\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f php \u0434\u043b\u044f php-fpm \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- \/var\/log\/php:\/var\/log\/php #log \u0444\u0430\u0439\u043b\u044b \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- \/var\/www\/DOMAIN_NAME:\/var\/www\/DOMAIN_NAME #\u0414\u043e\u043c\u0430\u0448\u043d\u044f\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u00a0\u00a0\u00a0\u00a0cap_add: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- SYS_NICE \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- DAC_READ_SEARCH \u00a0\u00a0\u00a0\u00a0restart: always \u00a0\u00a0\u00a0\u00a0networks: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0default: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ipv4_address: 172.16.1.5<\/code><\/pre>\n<p>\u0423 \u043d\u0430\u0441 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 <strong>php-fpm<\/strong>: <\/p>\n<ul>\n<li>\n<p>\u0421 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c\u00a0 <strong>DOMAIN_NAME-php-fpm<\/strong>;<\/p>\n<\/li>\n<li>\n<p>hostname \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 <strong>DOMAIN_NAME-php-fpm<\/strong>;<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0438\u0437 \u043d\u0430\u0448\u0435\u0433\u043e Dockerfile \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <strong>.\/volumes\/php-fpm\/build<\/strong>. \u0421 \u043f\u0440\u043e\u043a\u0438\u043d\u0443\u0442\u044b\u043c\u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u043c\u0438 \u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 <strong>.\/volumes\/etc\/php\/fpm.pool.d\/DOMAIN_NAME.conf, .\/volumes\/etc\/php\/php.ini, \/var\/log\/php,\u00a0 \/var\/www\/DOMAIN_NAME\/<\/strong>;<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043d\u0430 <strong>9000<\/strong> \u043f\u043e\u0440\u0442\u0435 \u0445\u043e\u0441\u0442 \u043c\u0430\u0448\u0438\u043d\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0427\u0430\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u0439 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u0441 ip \u0430\u0434\u0440\u0435\u0441\u043e\u043c <strong>172.16.1.5<\/strong>.<\/p>\n<\/li>\n<\/ul>\n<h4>\u041f\u0443\u043d\u043a\u0442 7. \u041f\u0438\u0448\u0435\u043c mysql.<\/h4>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0441\u0442\u0440\u043e\u043a\u0435 mysql.<\/p>\n<h3>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435:<\/h3>\n<pre><code class=\"yaml\">\u00a0\u00a0\u00a0container_name: DOMAIN_NAME-mysql<\/code><\/pre>\n<h3>Hostname:<\/h3>\n<pre><code class=\"yaml\">\u00a0\u00a0\u00a0\u00a0\u00a0hostname: DOMAIN_NAME-mysql<\/code><\/pre>\n<h3>\u0420\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 Dockerfile:<\/h3>\n<pre><code class=\"yaml\">\u00a0\u00a0\u00a0\u00a0build: .\/volumes\/mysql\/build<\/code><\/pre>\n<h3>\u041f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 links: \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e.<\/h3>\n<h3>\u041f\u043e\u0440\u0442\u044b:<\/h3>\n<pre><code class=\"yaml\">\u00a0\u00a0\u00a0\u00a0ports: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- \"3310:3310\"<\/code><\/pre>\n<h4>\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u043a\u0438\u043d\u0443\u0442\u044c:<\/h4>\n<ol>\n<li>\n<p>\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0411\u0414.<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b mysql.<\/p>\n<\/li>\n<li>\n<p>log \u0444\u0430\u0439\u043b mysql.<\/p>\n<\/li>\n<\/ol>\n<p>\u041f\u0440\u043e\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u043c:<\/p>\n<pre><code class=\"yaml\">\u00a0\u00a0\u00a0\u00a0volumes: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- \/var\/lib\/mysql:\/var\/lib\/mysql #\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0411\u0414. \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- \/var\/log\/mysql:\/var\/log\/mysql #log \u0444\u0430\u0439\u043b \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- .\/volumes\/mysql\/conf.d:\/etc\/mysql\/conf.d:ro #\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f mysql.<\/code><\/pre>\n<h3>IP \u0430\u0434\u0440\u0435\u0441:<\/h3>\n<pre><code class=\"yaml\">\u00a0\u00a0\u00a0\u00a0networks: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0default: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ipv4_address: 172.16.1.6<\/code><\/pre>\n<h3>\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430:<\/h3>\n<pre><code class=\"yaml\">\u00a0\u00a0\u00a0\u00a0restart: always<\/code><\/pre>\n<h3>\u0418\u0442\u043e\u0433:<\/h3>\n<pre><code class=\"yaml\">\u00a0\u00a0mysql: \u00a0\u00a0\u00a0\u00a0container_name: DOMAIN_NAME-mysql \u00a0\u00a0\u00a0\u00a0hostname: DOMAIN_NAME-mysql \u00a0\u00a0\u00a0\u00a0build: .\/volumes\/mysql\/build \u00a0\u00a0\u00a0\u00a0ports: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- \"3310:3310\" \u00a0\u00a0\u00a0\u00a0volumes: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- \/var\/lib\/mysql:\/var\/lib\/mysql #\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0411\u0414. \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- \/var\/log\/mysql:\/var\/log\/mysql #log \u0444\u0430\u0439\u043b \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- .\/volumes\/mysql\/conf.d:\/etc\/mysql\/conf.d:ro #\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f mysql. \u00a0\u00a0\u00a0\u00a0networks: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0default: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ipv4_address: 172.16.1.6<\/code><\/pre>\n<p>\u0423 \u043d\u0430\u0441 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 <strong>mysql<\/strong>:<\/p>\n<ul>\n<li>\n<p>\u0421 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c\u00a0 <strong>DOMAIN_NAME-mysql<\/strong>;<\/p>\n<\/li>\n<li>\n<p>hostname \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 <strong>DOMAIN_NAME-mysql<\/strong>;<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0438\u0437 \u043d\u0430\u0448\u0435\u0433\u043e Dockerfile \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <strong>.\/volumes\/mysql\/build<\/strong>;<\/p>\n<\/li>\n<li>\n<p>\u0421 \u043f\u0440\u043e\u043a\u0438\u043d\u0443\u0442\u044b\u043c\u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u043c\u0438 \u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 <strong>\/var\/lib\/mysql,\u00a0\/var\/log\/mysql:\/var\/log\/mysql,\u00a0.\/volumes\/mysql\/conf.d<\/strong>;<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043d\u0430 <strong>3010<\/strong> \u043f\u043e\u0440\u0442\u0435\u00a0\u0445\u043e\u0441\u0442 \u043c\u0430\u0448\u0438\u043d\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0427\u0430\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u0439 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438\u00a0ip \u0430\u0434\u0440\u0435\u0441\u043e\u043c <strong>172.16.1.6<\/strong>.<\/p>\n<\/li>\n<\/ul>\n<h4>\u041f\u0443\u043d\u043a\u0442 8. \u041e\u0431\u0449\u0438\u0439 \u0438\u0442\u043e\u0433 \u043d\u0430\u0448\u0435\u0433\u043e docker-compose.yml:<\/h4>\n<pre><code class=\"yaml\">version: '2.4' services: \u00a0\u00a0nginx: \u00a0\u00a0\u00a0\u00a0container_name: DOMAIN_NAME-nginx \u00a0\u00a0\u00a0\u00a0hostname: DOMAIN_NAME-nginx \u00a0\u00a0\u00a0\u00a0build: .\/volumes\/build\/nginx \u00a0\u00a0\u00a0\u00a0volumes: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- .\/var\/log\/nginx:\/var\/log\/nginx #log \u0444\u0430\u0439\u043b\u044b. \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- .\/volumes\/etc\/nginx\/nginx.conf:\/etc\/nginx\/nginx.conf:ro #\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f nginx. \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- .\/volumes\/etc\/nginx\/sites-enabled:\/etc\/nginx\/sites-enabled:ro #\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043f\u043b\u043e\u0449\u0430\u0434\u043e\u043a. \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- .\/volumes\/etc\/nginx\/ssl:\/etc\/nginx\/ssl:ro #\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- \/var\/www\/DOMAIN_NAME:\/var\/www\/DOMAIN_NAME #\u0414\u043e\u043c\u0430\u0448\u043d\u044f\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u00a0\u00a0\u00a0\u00a0ports: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- \"80:80\" \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- \"443:443\" \u00a0\u00a0\u00a0\u00a0links: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- php-fpm \u00a0\u00a0\u00a0\u00a0restart: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0always \u00a0\u00a0\u00a0\u00a0networks: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0default: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ipv4_address: 172.16.1.4  \u00a0\u00a0php-fpm: \u00a0\u00a0\u00a0\u00a0container_name: DOMAIN_NAME-php-fpm \u00a0\u00a0\u00a0\u00a0hostname: DOMAIN_NAME-php-fpm \u00a0\u00a0\u00a0\u00a0build: .\/volumes\/php-fpm\/build \u00a0\u00a0\u00a0\u00a0ports: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- \"9000:9010\" \u00a0\u00a0\u00a0\u00a0volumes: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- .\/volumes\/etc\/php\/fpm.pool.d\/DOMAIN_NAME.conf:\/usr\/local\/etc\/php-fpm.d\/DOMAIN_NAME.conf:ro #\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- .\/volumes\/etc\/php\/nxs-std.ini:\/usr\/local\/etc\/php\/conf.d\/nxs-std.ini:ro #\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f php \u0434\u043b\u044f php-fpm \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- \/var\/log\/php:\/var\/log\/php #log \u0444\u0430\u0439\u043b\u044b \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- \/var\/www\/DOMAIN_NAME:\/var\/www\/DOMAIN_NAME #\u0414\u043e\u043c\u0430\u0448\u043d\u044f\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u00a0\u00a0\u00a0\u00a0cap_add: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- SYS_NICE \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- DAC_READ_SEARCH \u00a0\u00a0\u00a0\u00a0restart: always \u00a0\u00a0\u00a0\u00a0networks: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0default: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ipv4_address: 172.16.1.5  \u00a0\u00a0mysql: \u00a0\u00a0\u00a0\u00a0container_name: DOMAIN_NAME-mysql \u00a0\u00a0\u00a0\u00a0hostname: DOMAIN_NAME-mysql \u00a0\u00a0\u00a0\u00a0build: .\/volumes\/mysql\/build \u00a0\u00a0\u00a0\u00a0ports: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- \"3310:3310\" \u00a0\u00a0\u00a0\u00a0volumes: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- \/var\/lib\/mysql:\/var\/lib\/mysql #\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0411\u0414. \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- \/var\/log\/mysql:\/var\/log\/mysql #log \u0444\u0430\u0439\u043b \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- .\/volumes\/mysql\/conf.d:\/etc\/mysql\/conf.d:ro #\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f mysql. \u00a0\u00a0\u00a0\u00a0networks: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0default: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ipv4_address: 172.16.1.6  networks: \u00a0\u00a0default: \u00a0\u00a0\u00a0\u00a0driver: bridge \u00a0\u00a0\u00a0\u00a0ipam: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0config: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- subnet: 172.16.1.0\/24<\/code><\/pre>\n<p>\u0418\u0442\u0430\u043a, \u043c\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043a\u043b\u044e\u0447\u0438 \u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 docker-compose. \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c yml, \u0430 \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c,\u00a0\u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0432\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438! \u041d\u043e \u043f\u0435\u0440\u0435\u0434 \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u00a0\u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c Dockerfile, \u0438 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0441 \u0432\u0430\u043c\u0438 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u0442\u0430\u043a\u043e\u0435, \u0434\u043b\u044f \u0447\u0435\u0433\u043e Dockerfile \u043d\u0443\u0436\u0435\u043d, \u0438 \u043a\u0430\u043a \u0435\u0433\u043e \u043a\u0440\u0430\u0441\u0438\u0432\u043e \u043f\u0438\u0441\u0430\u0442\u044c. \u041f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u043d\u0430\u0448 docker-compose, \u043d\u0430\u043a\u0430\u0442\u0438\u043c WordPress \u0438\u00a0\u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u0443. <\/p>\n<p>\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0443\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u043d\u0430\u043c \u0432\u0440\u0435\u043c\u044f. \u041d\u0430\u0434\u0435\u0435\u043c\u0441\u044f, \u0441\u0442\u0430\u0442\u044c\u044f \u0431\u044b\u043b\u0430 \u0434\u043b\u044f \u0432\u0430\u0441 \u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439. \u0415\u0441\u043b\u0438 \u043e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u0432\u043e\u043f\u0440\u043e\u0441\u044b &#8212; \u0437\u0430\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445, \u043c\u044b \u0441 \u0440\u0430\u0434\u043e\u0441\u0442\u044c\u044e \u043d\u0430 \u043d\u0438\u0445 \u043e\u0442\u0432\u0435\u0442\u0438\u043c. \u0412\u0441\u0435\u043c \u0443\u0434\u0430\u0447\u043d\u043e\u0433\u043e \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0447\u0442\u043e\u0431 \u0432\u0430\u0448 PROD \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043f\u0430\u0434\u0430\u043b!<\/p>\n<p>P.S.: \u0415\u0449\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 &#8212; \u0432 \u0442\u0435\u043b\u0435\u0433\u0440\u0430\u043c-\u043a\u0430\u043d\u0430\u043b\u0435 <a href=\"https:\/\/t.me\/devops_fm\">DevOps FM<\/a>, \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0439\u0442\u0435\u0441\u044c.<\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"v-portal\" style=\"display:none;\"><\/div>\n<\/div>\n<p> <!----> <!----><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:\/\/habr.com\/ru\/company\/nixys\/blog\/662698\/\"> https:\/\/habr.com\/ru\/company\/nixys\/blog\/662698\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041c\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u0446\u0438\u043a\u043b \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u0432: \u0435\u0441\u043b\u0438 \u0432\u044b \u044f\u0432\u043b\u044f\u0435\u0442\u0435\u0441\u044c \u043e\u043f\u044b\u0442\u043d\u044b\u043c \u0430\u0434\u043c\u0438\u043d\u043e\u043c, \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043c\u0435\u043b\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c docker-compose.<\/p>\n<p>\u041d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u0446\u0435\u043b\u044c \u0441\u0435\u0440\u0438\u0438 &#8212; \u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435, \u0430 \u043b\u0438\u0448\u044c \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0430 \u043d\u044e\u0430\u043d\u0441\u044b \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0438 \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432 \u043e\u0442 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0440\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435.<\/p>\n<p>\u0421\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043d\u0430\u0448\u0438 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0441\u0442\u0430\u0442\u044c\u0438:<br \/><a href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/661443\/\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 LEMP \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e docker \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u0427\u0430\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u0430\u044f: \u0411\u0430\u0437\u0430<\/a><\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/645451\/\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 LEMP \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u0441\u0430\u043c\u044b\u0445 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445. \u0427\u0430\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u0430\u044f<\/a><\/p>\n<p>\u0418\u0442\u0430\u043a, \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435\u0439 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0443\u043d\u043a\u0442\u044b:<\/p>\n<ol>\n<li>\n<p>docker-compose.<\/p>\n<ol>\n<li>\n<p>\u0427\u0435\u043c \u0443\u0434\u043e\u0431\u0435\u043d docker-compose?<\/p>\n<\/li>\n<li>\n<p>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430.<\/p>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0435\u043c \u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044e yml-\u0444\u0430\u0439\u043b\u0430.<\/p>\n<p>\u041f\u0443\u043d\u043a\u0442 1. \u0423\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0438.<\/p>\n<p>\u041f\u0443\u043d\u043a\u0442 2. \u041e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u044b.<\/p>\n<p>\u041f\u0443\u043d\u043a\u0442 3. \u041e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u043c\u00a0\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b.<\/p>\n<p>\u041f\u0443\u043d\u043a\u0442 4. \u041b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0435\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432.<\/p>\n<p>\u041f\u0443\u043d\u043a\u0442 4.1. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0438 \u043a\u043b\u044e\u0447\u0438\u00a0\u0444\u0430\u0439\u043b\u0430 docker-compose.<\/p>\n<p>\u041f\u0443\u043d\u043a\u0442 5. \u041f\u0438\u0448\u0435\u043c nginx.<\/p>\n<p>\u041f\u0443\u043d\u043a\u0442 6. \u041f\u0438\u0448\u0435\u043c php-fpm.<\/p>\n<p>\u041f\u0443\u043d\u043a\u0442 7. \u041f\u0438\u0448\u0435\u043c mysql.<\/p>\n<p>\u041f\u0443\u043d\u043a\u0442 8. \u041e\u0431\u0449\u0438\u0439 \u0438\u0442\u043e\u0433\u00a0docker-compose.yml.<\/p>\n<\/li>\n<\/ol>\n<h2>docker-compose.<\/h2>\n<h4>\u0427\u0435\u043c \u0443\u0434\u043e\u0431\u0435\u043d docker-compose?<\/h4>\n<p>docker-compose \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442\u00a0\u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0432\u0441\u0435\u043c\u0438\u00a0\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438 \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 (\u0444\u0430\u0439\u043b &#8212; \u0444\u043e\u0440\u043c\u0430\u0442\u0430 yml). \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u0443\u0447\u0443 <strong>docker run<\/strong> \u0438 \u0434\u043b\u0438\u043d\u043d\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432: \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043b\u0438\u0448\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043e\u0434\u043d\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <strong>docker-compose up<\/strong>, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0432\u0441\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u0434\u043d\u044f\u0442\u044b \u0431\u0435\u0437 \u043d\u0430\u0448\u0435\u0433\u043e \u0432\u043c\u0435\u0448\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430, \u043f\u0440\u0438\u0447\u0435\u043c \u0441\u043e \u0432\u0441\u0435\u043c\u0438\u00a0 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0432 yml-\u0444\u0430\u0439\u043b\u0435.\u00a0\u0422\u0430\u043a\u0436\u0435 docker-compose\u00a0\u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f\u043c\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: gitlab.<\/p>\n<h4>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430.<\/h4>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442. \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e:<\/p>\n<pre><code>\u0441url -L \"https:\/\/github.com\/docker\/compose\/releases\/download\/1.29.2\/docker-compose-$(uname -s)-$(uname -m)\" -o \/usr\/local\/bin\/docker-compose<\/code><\/pre>\n<p>\u0414\u0435\u043b\u0430\u0435\u043c \u0441\u043a\u0430\u0447\u0430\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u043c:<\/p>\n<pre><code>chmod +x \/usr\/local\/bin\/docker-compose<\/code><\/pre>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c:<\/p>\n<pre><code>#:\/# docker-compose --version\u00a0 docker-compose version 1.29.2, build 5becea4c<\/code><\/pre>\n<p>\u0412\u0441\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<h4>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430:<\/h4>\n<p>\u041a\u0430\u043a\u0438\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f?<\/p>\n<ol>\n<li>\n<p>frontend: nginx.<\/p>\n<\/li>\n<li>\n<p>backend: php8.1-fpm.<\/p>\n<\/li>\n<li>\n<p>\u0411\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445: mysql.<\/p>\n<\/li>\n<\/ol>\n<p>\u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e, \u0433\u0434\u0435 \u0431\u0443\u0434\u0435\u0442 \u043b\u0435\u0436\u0430\u0442\u044c docker-compose.yml. \u041c\u044b \u043f\u0440\u0438\u043d\u044f\u043b\u0438 \u0437\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442, \u0447\u0442\u043e \u0432 \u043d\u0430\u0448\u0435\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0432\u0441\u0435 \u0444\u0430\u0439\u043b\u044b docker-compose \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \/var\/apps\/. \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043d\u0435\u0435:<\/p>\n<pre><code>mkdir \/var\/apps cd \/var\/apps<\/code><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u043f\u0440\u043e\u0435\u043a\u0442\u0430:<\/p>\n<pre><code>mkdir DOMAIN_NAME cd DOMAIN_NAME\/<\/code><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0444\u0430\u0439\u043b docker-compose.yml:<\/p>\n<pre><code>touch docker-compose.yml<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0433\u0434\u0435 \u0431\u0443\u0434\u0443\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043d\u0430\u0448\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u043f\u043b\u043e\u0449\u0430\u0434\u043e\u043a, \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 php.ini \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435:<\/p>\n<pre><code>mkdir volumes<\/code><\/pre>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0432\u0441\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043d\u0430\u0448\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432:<\/p>\n<pre><code>cd volumes\/ mkdir etc build<\/code><\/pre>\n<ol>\n<li>\n<p>etc &#8212; \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>build &#8212; \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0441 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 Dockerfile \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0443\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432\u0441\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u043e\u0431\u0440\u0430\u0437\u0430.<\/p>\n<\/li>\n<\/ol>\n<p>\u0414\u0430\u043b\u0435\u0435:<\/p>\n<pre><code>mkdir etc\/nginx etc\/mysql etc\/php-fpm8.1 mkdir etc\/nginx\/sites-enabled etc\/nginx\/ssl etc\/mysql\/conf.d etc\/php-fpm8.1\/fpm.pool.d touch etc\/nginx\/nginx.conf etc\/nginx\/sites-enabled\/DOMAIN_NAME.conf etc\/mysql\/conf.d\/config-file.cnf etc\/php-fpm8.1\/php.ini etc\/php-fpm8.1\/fpm.pool.d\/DOMAIN_NAME.conf mkdir build\/nginx build\/php-fpm8.1 build\/mysql touch build\/nginx\/Dockerfile build\/php-fpm8.1\/Dockerfile build\/mysql\/Dockerfile<\/code><\/pre>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0442\u0430\u043a\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439:<\/p>\n<ul>\n<li>\n<p>app\/\u00a0<\/p>\n<\/li>\n<li>\n<p>volumes\/ (\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c \u0444\u0430\u0439\u043b\u0430\u043c\u0438)<\/p>\n<\/li>\n<li>\n<p>build\/ (\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f c Dockerfile \u0434\u043b\u044f \u043d\u0430\u0448\u0438\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432)<\/p>\n<ul>\n<li>\n<p>mysql\/<br \/>Dockerfile<\/p>\n<\/li>\n<li>\n<p>nginx\/<br \/>Dockerfile<\/p>\n<\/li>\n<li>\n<p>php-fpm8.1\/<br \/>Dockerfile<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>etc\/ (\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0434\u043b\u044f \u043d\u0430\u0448\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432)<\/p>\n<ul>\n<li>\n<p>mysql\/<\/p>\n<ul>\n<li>\n<p>config-file.cnf<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>nginx\/<\/p>\n<ul>\n<li>\n<p>sites-enabled\/<\/p>\n<ul>\n<li>\n<p>\u200b\u200b\u200bDOMAIN_NAME.conf<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>nginx.conf<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>php-fpm8.1\/<\/p>\n<ul>\n<li>\n<p>fpm.pool.d\/<\/p>\n<ul>\n<li>\n<p>DOMAIN_NAME.conf<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>php.ini<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>docker-compose.yml<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0443 \u0438\u043b\u0438 \u0442\u0430\u043a:<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u0412 .\/app\/volumes\/etc\/mysql\/config-file.cnf \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043b\u044f mysql. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043c:<\/p>\n<pre><code>[mysqld] port = 3310 wait_timeout = 9000000 max_allowed_packet = 1024M innodb_buffer_pool_size = 512M innodb_log_buffer_size = 256M innodb_log_file_size = 1G innodb_write_io_threads = 16 innodb_flush_log_at_trx_commit = 0 net_read_timeout=500 net_write_timeout=500 interactive_timeout=600 connect_timeout=500 skip-log-bin # Slow query settings: slow_query_log=1 slow_query_log_file=\/var\/log\/mysql\/slow.log long_query_time=2 # Error query settings: log_error=\/var\/log\/mysql\/mysql_error.log general_log_file=\/var\/log\/mysql\/mysql.log general_log=1<\/code><\/pre>\n<p>\u0412 .\/app\/volumes\/etc\/nginx\/nginx.conf \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043b\u044f nginx \u0438 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438.\u00a0\u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043c:<\/p>\n<pre><code>nginx.conf: user \u00a0nginx;worker_processes \u00a06; error_log \u00a0\/var\/log\/nginx\/error.log warn; pid \u00a0 \u00a0 \u00a0 \u00a0\/var\/run\/nginx.pid; events {\u00a0  worker_connections \u00a016384; }  http { include \u00a0 \u00a0 \u00a0 \/etc\/nginx\/mime.types; default_type \u00a0application\/octet-stream;  \u00a0 \u00a0 log_format \u00a0main \u00a0'$remote_addr - $remote_user [$time_local] \"$request\" '\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 '$status $body_bytes_sent \"$http_referer\" '\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 '\"$http_user_agent\" \"$http_x_forwarded_for\"';  \u00a0 \u00a0 access_log \u00a0\/var\/log\/nginx\/access.log \u00a0main;  \u00a0 \u00a0 ### gzip\u00a0 \u00a0 gzip on;     gzip_disable \"msie6\";  \u00a0 \u00a0 gzip_vary on;     gzip_proxied any;     gzip_comp_level 6;     gzip_buffers 16 8k;     gzip_http_version 1.1;     gzip_types text\/plain text\/css application\/json application\/x-javascript text\/xml application\/xml application\/xml+rss text\/javascript image\/svg+xml;  \u00a0 \u00a0 client_body_buffer_size \u00a0 \u00a0 \u00a0 \u00a0 1m;     client_max_body_size \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a075m;      \u00a0 \u00a0 tcp_nopush on;     tcp_nodelay on;     keepalive_timeout 65;     types_hash_max_size 2048;  \u00a0 \u00a0 sendfile \u00a0 \u00a0 \u00a0 \u00a0on;     #tcp_nopush \u00a0 \u00a0 on;     #gzip \u00a0on;  \u00a0 \u00a0 include \/etc\/nginx\/sites-enabled\/*.conf;          }<\/code><\/pre>\n<p>\u0424\u0430\u0439\u043b \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438\u00a0.\/app\/volumes\/etc\/nginx\/sites-enabled\/DOMAIN_NAME.conf\u00a0\u043c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u0438\u0437 <a href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/661443\/\">\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0438<\/a>.<\/p>\n<p>\u0412 .\/app\/volumes\/etc\/php-fpm8.1\/fpm.pool.d\/DOMAIN_NAME.conf\u00a0\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043b\u044f php-fpm \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438:<\/p>\n<pre><code>[DOMAIN_NAME] listen = 172.16.1.5:9010 \u00a0 ;ip \u0430\u0434\u0440\u0435\u0441 \u0438 \u043f\u043e\u0440\u0442 \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f\u00a0php-fpm \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438. listen.mode = 0666 user = DOMAIN_NAME \u00a0 ;\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438. group = DOMAIN_NAME \u00a0;\u0413\u0440\u0443\u043f\u043f\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438. \u00a0 pm = dynamic   pm.max_children = 50   pm.start_servers = 1   pm.min_spare_servers = 1   pm.max_spare_servers = 35   pm.max_requests = 500   request_terminate_timeout = 5m   request_slowlog_timeout = 2s   slowlog = \/var\/log\/php\/php-fpm.slow.log   php_admin_value[opcache.max_accelerated_files] = 20000   php_admin_value[realpath_cache_size] = 4096K   php_admin_value[realpath_cache_ttl] = 600   php_admin_flag[display_errors] = off;   php_admin_value[error_log] = \/var\/www\/DOMAIN_NAME\/log\/php-fpm\/fpm-php.log   php_admin_flag[log_errors] = on   php_admin_value[open_basedir] = \/var\/www\/DOMAIN_NAME   php_admin_value[upload_tmp_dir] = \/var\/www\/DOMAIN_NAME\/upload   php_admin_value[session.save_path] = \/var\/www\/DOMAIN_NAME\/sess<\/code><\/pre>\n<p>\u0412 .\/app\/volumes\/etc\/php-fpm8.1\/php.ini \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0432\u0441\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043b\u044f php. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043c:<\/p>\n<pre><code>upload_max_filesize = 500 Mmax_file_uploads = 20 post_max_size = 500 Mmemory_limit = 4096 Mdate.timezone = Europe\/Moscow<\/code><\/pre>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u043c\u0438 \u043e\u0447\u0438\u0441\u0442\u0438\u043c \u0432\u0441\u0435\u00a0\u043e\u0431\u0440\u0430\u0437\u044b, \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0440\u0430\u043d\u0435\u0435 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0430:\u00a0<\/p>\n<pre><code>docker system prune --volumes --all<\/code><\/pre>\n<p>\u042d\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043e\u0447\u0438\u0449\u0430\u0435\u0442 \u0432\u0441\u0435 \u043e\u0431\u0440\u0430\u0437\u044b \u043d\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432. \u0412\u0430\u0436\u043d\u043e\u0435 \u0443\u0442\u043e\u0447\u043d\u0435\u043d\u0438\u0435 &#8212; \u0438\u043c\u0435\u043d\u043d\u043e <em>\u043d\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0445<\/em>!<\/p>\n<p>\u0421\u043c\u043e\u0442\u0440\u0438\u043c \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b:<\/p>\n<pre><code>docker ps CONTAINER ID \u00a0 IMAGE \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 COMMAND\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 CREATED\u00a0 \u00a0 \u00a0 \u00a0 STATUS\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 PORTS\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 NAMES 5f3353afe4fc \u00a0 nginx:stable\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \"\/docker-entrypoint.\u2026\" \u00a0 4 months ago \u00a0 Up About a minute \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 0.0.0.0:80->80\/tcp, :::80->80\/tcp, 0.0.0.0:443->443\/tcp, :::443->443\/tcp \u00a0 nginx 88c83f238c5c \u00a0 php-fpm \u00a0 \u00a0 \u00a0           \u00a0 \u00a0 \"\/docker-entrypoint.\u2026\" \u00a0 4 months ago \u00a0 Up About a minute \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 9000\/tcp \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 php-fpm<\/code><\/pre>\n<p>\u0414\u043b\u044f \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432\u0441\u0435\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code>docker stop $(docker ps -a -q)<\/code><\/pre>\n<pre><code>docker stop $(docker ps -a -q) 5f3353afe4fc 88c83f238c5c<\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043e\u0447\u0438\u0449\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0437\u044b \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 docker system prune &#8212;volumes &#8212;all:<\/p>\n<pre><code>:~# docker system prune --volumes --all WARNING! This will remove: \u00a0\u00a0- all stopped containers \u00a0\u00a0- all networks not used by at least one container \u00a0\u00a0- all volumes not used by at least one container \u00a0\u00a0- all images without at least one container associated to them \u00a0\u00a0- all build cache Are you sure you want to continue? [y\/N] y  Deleted Containers: d25fadd1ace48b1e1d7285c79c924928fd2df54395f3cab9d1184bf25745404f a156787f2e2d20585272f90b86fbfd82c6ff28fd6bd3e17785be1530e0dcf433 034a89f5322498cd272436515a43a9d82e0f32cdbd2da230a8211f1af7134619 c422454c2b997aec3e473998b3f51cbe5b322c00c094de9bfc20aba3af403830 5f3353afe4fc381fb2aa554700fb0a37ef378e923b5662241549722b243f84ea 88c83f238c5cfe7c71293793d54149e5e6aaf9db92dce9f0f1c9ac2e5e35be3c 77f498f59e80623dd325f6297dcc1c0b068c0fc0b373ca5c137d49052f71276f Deleted Networks: default docker_default Deleted Volumes: 171304f87cde0dbe4142c80e10e30076acfdae1c9d1ac0ed73125e8938bd13af 65e26f00da5308b81afe3d870d63243716df4935445b25648c5c69392151fefe a016235f662b38c657f5e04283fc54d779d18c6e9d778c04e2a5fc264fec428b a20375ceb893d7ae95c2b5ffd10c8557b49f02896a456c22a9015d17f34bd490 untagged: nginx:stable untagged: nginx@sha256:74fb4c9d7e4fe6a8ab699d66fb5ffbf3daf1025bbb6f65a3217dde6e8f4d6e56 deleted: sha256:50fe74b50e0d0258922495297efbb9ebc3cbd5742103df1ca54dc21c07d24575 deleted: sha256:5c89b8cf56a58aa2a96ab1ed19ffd8e0630355776b1db7082fd897f8a5d285d4 deleted: sha256:e45a683cc5d56e842fc90c7ad0535abb1e909f733c2c0c29f4cf43f7247f8438 deleted: sha256:7ffdf2d40e75d1028ecbdba3cd5c548dc7a2b6c6b6598c2ff0af1f864df662e8 deleted: sha256:43828a7cbba35611955d78d1849ba6e48f176c96795ea881a7a9adcf5eb23bfa deleted: sha256:e6ffc9b8132b8380efc5dd578d3e369890abaa492863968a5c41bdf9a8e5070e deleted: sha256:2edcec3590a4ec7f40cf0743c15d78fb39d8326bc029073b41ef9727da6c851f untagged: php-fpm:latest deleted: sha256:cac496cb3198354a8bf68188c5cec929ba149e4f8f331c32f38e45ecc0bd0e67 deleted:<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\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-332396","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/332396","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=332396"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/332396\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=332396"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=332396"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=332396"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}