
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
что "ну такое"?

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


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
а еще в проекте фронтэнд лежит со статикой, которую нужно в нжинкс образ завернуть

Sergey
27.12.2017
18:06:51
короч, ты меня не переубедишь - твой способ рачье (я просто так делал года полтора))
последние пол года делаю 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:13

Sergey
27.12.2017
18:08:39

Sergey
27.12.2017
18:08:47

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
я призираю вариант при котором надо разные образы юзать

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

Vladislav
27.12.2017
18:10:31

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

Sergey
27.12.2017
18:11:28

Google

Vladislav
27.12.2017
18:11:29
и install
?

Sergey
27.12.2017
18:11:39

Sergey
27.12.2017
18:11:46
ну просто даже смешные я бы сказал

Sergey
27.12.2017
18:12:18

Sergey
27.12.2017
18:12:27

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