@symfony_php

Страница 529 из 1418
Sergey
27.12.2017
17:56:33
один слой, все очень компактное, что такое?

Vladislav
27.12.2017
17:57:14
я просто думаю что стэйтлесс образы можно и не пушить

и вот стоял вопрос как и пересобирать, если на то пошло, то надо свой регистр запилить побыстрому)

Sergey
27.12.2017
17:57:39
я просто думаю что стэйтлесс образы можно и не пушить
если у тебя образ не поменялся - какая разнциа?

Google
Sergey
27.12.2017
17:57:54
ну такое)
- инкрементная сборка - пара секунд. - сборка с установкой вендоров - секунд 15-20 - инкрементный образ (те слои которые меняются) весит пару метров - образ весит где-то 400-500 метров вроде

Sergey
27.12.2017
17:58:27
один слой, все очень компактное, что такое?
тащить кишки сборки в образ, такая себе затея

Sergey
27.12.2017
17:58:29
что "ну такое"?

тащить кишки сборки в образ, такая себе затея
какие кишки, простите? еще раз - посмотри .dockerignore

Sergey
27.12.2017
17:58:52
composer install

RUN curl --silent --show-error https://getcomposer.org/installer | \ php -- --install-dir=/usr/bin/ --filename=composer && \ composer global require hirak/prestissimo && \ composer clear-cache

Sergey
27.12.2017
17:59:07
да, это самый православный способ

Sergey
27.12.2017
17:59:09
RUN composer install --no-scripts --no-autoloader --no-suggest && \

Sergey
27.12.2017
17:59:31
при таком варианте максимально просто, максимально мало весит и максимально быстро

никаких кишок

ИМХО

ну или покажи мне способ такой же простой и эффективный?)

Google
Sergey
27.12.2017
18:00:29
который ты считаешь "более православным"

и аргументируй почему он лучше

или ты предлагаешь на CI-ке делать composer install --ignore-platform-reqs?

и потом "как-то" определять что ничего не поменялось и не надо копировать вендоры?

напомню что у тебя вендоры будут меняться всякий раз как ты сдампишь новый автолоадер)

Sergey
27.12.2017
18:01:50
FROM php:7.1-fpm ##################################### # Install php extensions and libs ##################################### RUN set -xe \ && apt-get update \ && apt-get install -y libicu-dev \ libfreetype6-dev \ libjpeg62-turbo-dev \ libpng12-dev \ libcurl4-gnutls-dev \ libmagickwand-dev \ libmcrypt-dev \ libssl-dev \ --no-install-recommends \ && docker-php-ext-install pdo_mysql \ intl \ zip \ bcmath \ curl \ gd \ mbstring \ soap \ xml \ xmlrpc \ sockets \ && pecl install imagick \ mongodb \ && docker-php-ext-enable imagick \ mongodb \ && rm -r /var/lib/apt/lists/* COPY docker/php/php.ini /usr/local/etc/php/php.ini ##################################### # Set Timezone ##################################### ARG TZ=UTC ENV TZ ${TZ} RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone ##################################### # Xdebug ##################################### ARG INSTALL_XDEBUG=false RUN if [ ${INSTALL_XDEBUG} = true ]; then \ pecl install xdebug \ && docker-php-ext-enable xdebug \ && echo "xdebug.remote_enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ && echo "xdebug.remote_autostart = 0" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ ;fi ##################################### # App ##################################### ENV SYMFONY_ENV=prod ENV WORKDIR /srv/app WORKDIR $WORKDIR RUN mkdir -p var/cache COPY bin bin/ COPY vendor vendor/ COPY app app/ COPY web web/ COPY src src/ RUN [ "php", "./bin/console", "cache:warmup" ] EXPOSE 9000

Sergey
27.12.2017
18:02:07
FROM php:7.1-fpm ##################################### # Install php extensions and libs ##################################### RUN set -xe \ && apt-get update \ && apt-get install -y libicu-dev \ libfreetype6-dev \ libjpeg62-turbo-dev \ libpng12-dev \ libcurl4-gnutls-dev \ libmagickwand-dev \ libmcrypt-dev \ libssl-dev \ --no-install-recommends \ && docker-php-ext-install pdo_mysql \ intl \ zip \ bcmath \ curl \ gd \ mbstring \ soap \ xml \ xmlrpc \ sockets \ && pecl install imagick \ mongodb \ && docker-php-ext-enable imagick \ mongodb \ && rm -r /var/lib/apt/lists/* COPY docker/php/php.ini /usr/local/etc/php/php.ini ##################################### # Set Timezone ##################################### ARG TZ=UTC ENV TZ ${TZ} RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone ##################################### # Xdebug ##################################### ARG INSTALL_XDEBUG=false RUN if [ ${INSTALL_XDEBUG} = true ]; then \ pecl install xdebug \ && docker-php-ext-enable xdebug \ && echo "xdebug.remote_enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ && echo "xdebug.remote_autostart = 0" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ ;fi ##################################### # App ##################################### ENV SYMFONY_ENV=prod ENV WORKDIR /srv/app WORKDIR $WORKDIR RUN mkdir -p var/cache COPY bin bin/ COPY vendor vendor/ COPY app app/ COPY web web/ COPY src src/ RUN [ "php", "./bin/console", "cache:warmup" ] EXPOSE 9000
composer install до docker build?

Sergey
27.12.2017
18:02:13
да, конечно

Sergey
27.12.2017
18:02:21
в этом случае у тебя ВСЕГДА вендоры будут копироваться, кэш не будет юзаться

Sergey
27.12.2017
18:02:26
нет

Sergey
27.12.2017
18:02:29
да

Sergey
27.12.2017
18:02:33
если вендоры не менялись

то не будут копироваться

COPY src src/ только меняется в основном

Sergey
27.12.2017
18:03:00
вендоры не будут меняться только если ты не делаешь composer install или же запускаешь это добро без dump -o

автолоадер, карл

во всяком случае у меня не вышло сделать так как у тебя

потому что вендоры менялись всегда на CI-ке да и я не могу гарантировать там что все будет ок (например что у меня на другой слэйв джобу не перекинет)

вендоры не меняются только если делать composer install --no-autoload

но повторю свой вопрос: > предлагаешь на CI-ке делать composer install —ignore-platform-reqs?

Google
Vladislav
27.12.2017
18:04:55
так а в чем проблема с вендорамИ?

Sergey
27.12.2017
18:05:06
если у тебя маппинг не менялся, то автолоадер будет таким же

на 10 коммитов будет только 1, в котором добавилось чет или удалилось

Sergey
27.12.2017
18:05:54
короч, объясни мне по путкнам что тебя не устраивает в том что бы заюзать нормально кэш докера, что тебе не нравится в том что я composer install делаю в dockerfile?

и юзаешь ли ты --ignore-platform-reqs

раз у тебя композер вне образа

Sergey
27.12.2017
18:06:20
и юзаешь ли ты --ignore-platform-reqs
а без него никак, у меня монга)

а еще в проекте фронтэнд лежит со статикой, которую нужно в нжинкс образ завернуть

Sergey
27.12.2017
18:06:51
а без него никак, у меня монга)
ну вот а у меня без него и я во время сборки узнаю что чего-то в инфраструктуре не хватает, того же ext-mongo

короч, ты меня не переубедишь - твой способ рачье (я просто так делал года полтора))

последние пол года делаю npm install и composer install в Dockerfile и это... хорошо

Sergey
27.12.2017
18:07:58
у нас щас есть образ, в котором зашит и nodejs, и ruby, и composer это все чтобы можно было внутри одного образа собрать проект

Sergey
27.12.2017
18:08:11
то что тебе скинул это новый вариант, на замену этому рачью

с композерами внутри

Sergey
27.12.2017
18:08:39
Sergey
27.12.2017
18:08:47
а как ты просто composer update делаешь?
а ты его делаешь на CI-ке?

Sergey
27.12.2017
18:09:06
а при чем тут CI?

у тебя для разработки образы другие?

Google
Sergey
27.12.2017
18:09:12
а причем тут update?)

нет, один и тот же образ

Sergey
27.12.2017
18:09:24
и как же ты делаешь update?

Sergey
27.12.2017
18:09:26
я призираю вариант при котором надо разные образы юзать

и как же ты делаешь update?
composer update очевидно, не вижу проблемы

Sergey
27.12.2017
18:09:46
у тебя установлен еще локально composer?

Sergey
27.12.2017
18:10:05
ну вопервых да, а во вторых мне никто не мешает сделать docker-compose run --rm api composer update

Sergey
27.12.2017
18:10:19
ну вот как-то не сходится)

Sergey
27.12.2017
18:10:19
композер же есть в образе

Admin
ERROR: S client not available

Sergey
27.12.2017
18:10:33
т.е для апдейта ты юзаешь отдельный образ

а для инстала внутри образа приложения?

Sergey
27.12.2017
18:10:42
т.е для апдейта ты юзаешь отдельный образ
нет же, отдельный КОНТЕЙНЕР

фил зе дифренс

локально у меня так и так волум проброшен

Sergey
27.12.2017
18:11:11
ну к примеру у меня ci сделает docker run --rm -v $(pwd):/app composer/composer install, и в образе не будет этого гавна лишнего

Vladislav
27.12.2017
18:11:25
composer update запустил локально, все првоерил, запушил composer.lock

Google
Vladislav
27.12.2017
18:11:29
и install

?

Sergey
27.12.2017
18:11:39
какого? композер жалко добавить?)_
давай еще ssh добавим, че уж

Sergey
27.12.2017
18:11:46
давай еще ssh добавим, че уж
у тебя какие-то очень странные доводы, чел

ну просто даже смешные я бы сказал

Sergey
27.12.2017
18:12:18
composer update запустил локально, все првоерил, запушил composer.lock
неконсистентно как-то выходит. для апдейта одно, для инстала другое

Sergey
27.12.2017
18:12:32
да какой один?

Sergey
27.12.2017
18:12:37
такой один образ

ссылку на докерфайл я тебе скинул

Sergey
27.12.2017
18:12:52
ну делай как хошь собственно)

но это гавно

Vladislav
27.12.2017
18:12:56
ну один php-fpm

Sergey
27.12.2017
18:12:59
это у тебя говно)

Vladislav
27.12.2017
18:13:09
просто на деве все закидывается через волюм

Sergey
27.12.2017
18:13:12
на том и разойдемся)

Sergey
27.12.2017
18:14:04
окей.. ты чтобы собрать фронтэнд в нжинкс образ

тоже устанавливаешь nodejs, npm и тд?

Vladislav
27.12.2017
18:14:41
эээ, фротэнд отдельным образом идет

Sergey
27.12.2017
18:14:42
нет конечно)

Vladislav
27.12.2017
18:14:50
все тчо от него надо - index.html

Sergey
27.12.2017
18:14:50
нет конечно)
так а в чем разница?)

Страница 529 из 1418