George
Dockerfile покажи
꧁Aleksey
и вновь отрицательный ответ...
꧁Aleksey
сек
Ильдар
$ docker run --rm -ti centos yum Usage: yum [options] COMMAND
꧁Aleksey
FROM centos:centos7 as builder ARG YUM_FLAGS_COMMON="-y" ARG YUM_FLAGS_DEV="${YUM_FLAGS_COMMON}" ARG MAJOR_VERSION=4.0 ARG ZBX_VERSION=${MAJOR_VERSION}.5 ARG ZBX_SOURCES=svn://svn.zabbix.com/tags/${ZBX_VERSION}/ ENV ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ ZBX_TYPE=server ZBX_DB_TYPE=mysql ZBX_OPT_TYPE=none RUN yum --quiet makecache && \ yum ${YUM_FLAGS_DEV} install http://repo.zabbix.com/non-supported/rhel/7/x86_64/iksemel-devel-1.4-2.el7.centos.x86_64.rpm \ http://repo.zabbix.com/non-supported/rhel/7/x86_64/iksemel-1.4-2.el7.centos.x86_64.rpm && \ yum ${YUM_FLAGS_DEV} install \ autoconf \ automake \ gcc \ libcurl-devel \ libevent-devel \ libssh2-devel \ libxml2-devel \ make \ mariadb-devel \ net-snmp-devel \ OpenIPMI-devel \ openldap-devel \ subversion \ unixODBC-devel && \ cd /tmp/ && \ svn --quiet export ${ZBX_SOURCES} zabbix-${ZBX_VERSION} && \ cd /tmp/zabbix-${ZBX_VERSION} && \ zabbix_revision=svn info ${ZBX_SOURCES} | grep "Last Changed Rev"|awk '{print $4;}' && \ sed -i "s/{ZABBIX_REVISION}/$zabbix_revision/g" include/version.h && \ ./bootstrap.sh && \ export CFLAGS="-fPIC -pie -Wl,-z,relro -Wl,-z,now" && \ ./configure \ --datadir=/usr/lib \ --libdir=/usr/lib/zabbix \ --prefix=/usr \ --sysconfdir=/etc/zabbix \ --enable-agent \ --enable-${ZBX_TYPE} \ --with-${ZBX_DB_TYPE} \ --with-jabber \ --with-ldap \ --with-libcurl \ --with-libxml2 \ --with-net-snmp \ --with-openipmi \ --with-openssl \ --with-ssh2 \ --with-unixodbc \ --enable-ipv6 \ --silent && \ make -j"$(nproc)" -s dbschema && \ make -j"$(nproc)" -s && \ cat database/${ZBX_DB_TYPE}/schema.sql > database/${ZBX_DB_TYPE}/create.sql && \ cat database/${ZBX_DB_TYPE}/images.sql >> database/${ZBX_DB_TYPE}/create.sql && \ cat database/${ZBX_DB_TYPE}/data.sql >> database/${ZBX_DB_TYPE}/create.sql && \ gzip database/${ZBX_DB_TYPE}/create.sql FROM centos:centos7 LABEL maintainer="Alexey Pustovalov <alexey.pustovalov@zabbix.com>" ARG BUILD_DATE ARG VCS_REF ARG YUM_FLAGS_COMMON="-y" ARG YUM_FLAGS_PERSISTENT="${YUM_FLAGS_COMMON}" ARG MAJOR_VERSION=4.0 ARG ZBX_VERSION=${MAJOR_VERSION}.5 ARG ZBX_SOURCES=svn://svn.zabbix.com/tags/${ZBX_VERSION}/ ENV ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ TERM=xterm MIBDIRS=/usr/share/snmp/mibs:/var/lib/zabbix/mibs MIBS=+ALL \ ZBX_TYPE=server ZBX_DB_TYPE=mysql ZBX_OPT_TYPE=none LABEL org.label-schema.name="zabbix-${ZBX_TYPE}-${ZBX_DB_TYPE}-centos" \ org.label-schema.vendor="Zabbix LLC" \ org.label-schema.url="https://zabbix.com/" \ org.label-schema.description="Zabbix ${ZBX_TYPE} with MySQL database support" \ org.label-schema.vcs-ref="${VCS_REF}" \ org.label-schema.build-date="${BUILD_DATE}" \ org.label-schema.schema-version="1.0" \ org.label-schema.license="GPL v2.0" \ org.label-schema.usage="https://www.zabbix.com/documentation/${MAJOR_VERSION}/manual/installation/containers" \ org.label-schema.version="${ZBX_VERSION}" \ org.label-schema.vcs-url="${ZBX_SOURCES}" \ org.label-schema.docker.cmd="docker run --name zabbix-${ZBX_TYPE}-${ZBX_DB_TYPE} --link mysql-server:mysql -p 10051:10051 -d zabbix-${ZBX_TYPE}-${ZBX_DB_TYPE}:centos-${ZBX_VERSION}" STOPSIGNAL SIGTERM
꧁Aleksey
COPY --from=builder /tmp/zabbix-${ZBX_VERSION}/src/zabbix_${ZBX_TYPE}/zabbix_${ZBX_TYPE} /usr/sbin/zabbix_${ZBX_TYPE} COPY --from=builder /tmp/zabbix-${ZBX_VERSION}/src/zabbix_get/zabbix_get /usr/bin/zabbix_get COPY --from=builder /tmp/zabbix-${ZBX_VERSION}/src/zabbix_sender/zabbix_sender /usr/bin/zabbix_sender COPY --from=builder /tmp/zabbix-${ZBX_VERSION}/conf/zabbix_${ZBX_TYPE}.conf /etc/zabbix/zabbix_${ZBX_TYPE}.conf COPY --from=builder /tmp/zabbix-${ZBX_VERSION}/database/${ZBX_DB_TYPE}/create.sql.gz /usr/share/doc/zabbix-${ZBX_TYPE}-${ZBX_DB_TYPE}/create.sql.gz RUN groupadd --system zabbix && \ adduser -r --shell /sbin/nologin \ -g zabbix -G dialout \ -d /var/lib/zabbix/ \ zabbix && \ mkdir -p /etc/zabbix && \ mkdir -p /var/lib/zabbix && \ mkdir -p /usr/lib/zabbix/alertscripts && \ mkdir -p /var/lib/zabbix/enc && \ mkdir -p /usr/lib/zabbix/externalscripts && \ mkdir -p /var/lib/zabbix/mibs && \ mkdir -p /var/lib/zabbix/modules && \ mkdir -p /var/lib/zabbix/snmptraps && \ mkdir -p /var/lib/zabbix/ssh_keys && \ mkdir -p /var/lib/zabbix/ssl && \ mkdir -p /var/lib/zabbix/ssl/certs && \ mkdir -p /var/lib/zabbix/ssl/keys && \ mkdir -p /var/lib/zabbix/ssl/ssl_ca && \ chown --quiet -R zabbix:root /var/lib/zabbix && \ mkdir -p /usr/share/doc/zabbix-${ZBX_TYPE}-${ZBX_DB_TYPE} && \ yum ${YUM_FLAGS_COMMON} makecache && \ yum ${YUM_FLAGS_PERSISTENT} install http://repo.zabbix.com/non-supported/rhel/7/x86_64/iksemel-1.4-2.el7.centos.x86_64.rpm \ http://repo.zabbix.com/non-supported/rhel/7/x86_64/fping-3.10-1.el7.x86_64.rpm && \ yum ${YUM_FLAGS_PERSISTENT} install \ iptuils \ traceroute \ libcurl \ libevent \ libxml2 \ mariadb \ net-snmp-libs \ OpenIPMI-libs \ openldap \ openssl-libs \ pcre \ unixODBC && \ yum ${YUM_FLAGS_PERSISTENT} clean all && \ rm -rf /var/cache/yum/ EXPOSE 10051/TCP WORKDIR /var/lib/zabbix VOLUME ["/usr/lib/zabbix/alertscripts", "/usr/lib/zabbix/externalscripts", "/var/lib/zabbix/enc", "/var/lib/zabbix/mibs", "/var/lib/zabbix/modules"] VOLUME ["/var/lib/zabbix/snmptraps", "/var/lib/zabbix/ssh_keys", "/var/lib/zabbix/ssl/certs", "/var/lib/zabbix/ssl/keys", "/var/lib/zabbix/ssl/ssl_ca"] COPY ["docker-entrypoint.sh", "/usr/bin/"] ENTRYPOINT ["docker-entrypoint.sh"]
Mike
COPY --from=builder /tmp/zabbix-${ZBX_VERSION}/src/zabbix_${ZBX_TYPE}/zabbix_${ZBX_TYPE} /usr/sbin/zabbix_${ZBX_TYPE} COPY --from=builder /tmp/zabbix-${ZBX_VERSION}/src/zabbix_get/zabbix_get /usr/bin/zabbix_get COPY --from=builder /tmp/zabbix-${ZBX_VERSION}/src/zabbix_sender/zabbix_sender /usr/bin/zabbix_sender COPY --from=builder /tmp/zabbix-${ZBX_VERSION}/conf/zabbix_${ZBX_TYPE}.conf /etc/zabbix/zabbix_${ZBX_TYPE}.conf COPY --from=builder /tmp/zabbix-${ZBX_VERSION}/database/${ZBX_DB_TYPE}/create.sql.gz /usr/share/doc/zabbix-${ZBX_TYPE}-${ZBX_DB_TYPE}/create.sql.gz RUN groupadd --system zabbix && \ adduser -r --shell /sbin/nologin \ -g zabbix -G dialout \ -d /var/lib/zabbix/ \ zabbix && \ mkdir -p /etc/zabbix && \ mkdir -p /var/lib/zabbix && \ mkdir -p /usr/lib/zabbix/alertscripts && \ mkdir -p /var/lib/zabbix/enc && \ mkdir -p /usr/lib/zabbix/externalscripts && \ mkdir -p /var/lib/zabbix/mibs && \ mkdir -p /var/lib/zabbix/modules && \ mkdir -p /var/lib/zabbix/snmptraps && \ mkdir -p /var/lib/zabbix/ssh_keys && \ mkdir -p /var/lib/zabbix/ssl && \ mkdir -p /var/lib/zabbix/ssl/certs && \ mkdir -p /var/lib/zabbix/ssl/keys && \ mkdir -p /var/lib/zabbix/ssl/ssl_ca && \ chown --quiet -R zabbix:root /var/lib/zabbix && \ mkdir -p /usr/share/doc/zabbix-${ZBX_TYPE}-${ZBX_DB_TYPE} && \ yum ${YUM_FLAGS_COMMON} makecache && \ yum ${YUM_FLAGS_PERSISTENT} install http://repo.zabbix.com/non-supported/rhel/7/x86_64/iksemel-1.4-2.el7.centos.x86_64.rpm \ http://repo.zabbix.com/non-supported/rhel/7/x86_64/fping-3.10-1.el7.x86_64.rpm && \ yum ${YUM_FLAGS_PERSISTENT} install \ iptuils \ traceroute \ libcurl \ libevent \ libxml2 \ mariadb \ net-snmp-libs \ OpenIPMI-libs \ openldap \ openssl-libs \ pcre \ unixODBC && \ yum ${YUM_FLAGS_PERSISTENT} clean all && \ rm -rf /var/cache/yum/ EXPOSE 10051/TCP WORKDIR /var/lib/zabbix VOLUME ["/usr/lib/zabbix/alertscripts", "/usr/lib/zabbix/externalscripts", "/var/lib/zabbix/enc", "/var/lib/zabbix/mibs", "/var/lib/zabbix/modules"] VOLUME ["/var/lib/zabbix/snmptraps", "/var/lib/zabbix/ssh_keys", "/var/lib/zabbix/ssl/certs", "/var/lib/zabbix/ssl/keys", "/var/lib/zabbix/ssl/ssl_ca"] COPY ["docker-entrypoint.sh", "/usr/bin/"] ENTRYPOINT ["docker-entrypoint.sh"]
то есть то, что в докерфайле ты активно юзаешь юм тебя не наталкивает на мысли, что он там есть?
Mike
тогда почему я не могу выполнить yum install curl?
может это, ОШИБКУ ПОКАЖЕШЬ или ЧТО ТЫ И ГДЕ ВЫПОЛНЯЕШЬ ПОКАЖЕШЬ
꧁Aleksey
выполняю скрипт
꧁Aleksey
/usr/bin/docker run --restart=always \ --name mysql-for-zabbix -t \ -v /opt/zabbix/database:/var/lib/mysql \ -v /opt/zabbix/import:/tmp/import \ -v /opt/zabbix/flush:/tmp/flush \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix_pwd" \ -e MYSQL_ROOT_PASSWORD="zabbix_pwd" \ -d mysql:5.7 \ --character-set-server=utf8 --collation-server=utf8_bin /usr/bin/docker run --restart=always \ --name zabbix-java-gateway -t \ -d zabbix/zabbix-java-gateway:latest /usr/bin/docker run --restart=always \ --add-host mainhost:/sbin/ip route | grep docker | awk '{ print $9}' \ --name zabbix-server-mysql -t \ -e DB_SERVER_HOST="mysql-for-zabbix" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix_pwd" \ -e MYSQL_ROOT_PASSWORD="zabbix_pwd" \ -p 10051:10051 \ --link mysql-for-zabbix:mysql \ --link zabbix-java-gateway:zabbix-java-gateway \ -v /opt/zabbix/scripts:/usr/lib/zabbix/alertscripts \ -d docker-registry.ego-cms.com:5043/zabbix/zabbix-server-mysql:centos-latest /usr/bin/docker run --restart=always \ --name nginx-proxy -t \ -p 80:80 \ -p 443:443\ -v /opt/zabbix/crt:/etc/nginx/certs \ -v /etc/nginx/vhost.d \ -v /usr/share/nginx/html \ -v /var/run/docker.sock:/tmp/docker.sock:ro \ -d jwilder/nginx-proxy /usr/bin/docker run --restart=always \ --name nginx-proxy-letsencrypt -t \ --volumes-from nginx-proxy \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -d jrcs/letsencrypt-nginx-proxy-companion /usr/bin/docker run --restart=always \ --name zabbix-web-nginx-mysql -t \ -e DB_SERVER_HOST="mysql-for-zabbix" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix_pwd" \ -e MYSQL_ROOT_PASSWORD="zabbix_pwd" \ -e "VIRTUAL_HOST=zabbix.ego-cms.com" \ -e "LETSENCRYPT_HOST=zabbix.ego-cms.com" \ -e "LETSENCRYPT_EMAIL=egostatuspage@gmail.com" \ --link mysql-for-zabbix:mysql \ --link zabbix-server-mysql:zabbix-server \ -d zabbix/zabbix-web-nginx-mysql:latest ##ZABBIXHOST=$( docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' zabbix-server-mysql ) ##sed -e "s/Server=.*/Server=${ZABBIXHOST}/g" -e "s/ServerActive=.*/ServerActive=${ZABBIXHOST}/g" -i.bak /etc/zabbix/zabbix_agentd.conf #service zabbix-agent restart
Ильдар
выполняю скрипт
выполни одну команду, на которой ошибка воспроизводится
Ильдар
щас бы чужие скрипты поотлаживать
꧁Aleksey
꧁Aleksey
сейчас
꧁Aleksey
Ильдар
apt update
꧁Aleksey
apt update
согласен, но нет
Egor
Ребят есть вопрос: суть в том что через компос пробрасываю порт на слушанье. Но он не хуя не слушается. В чем дичь?:)
Egor
Порт 1 , в цифрах не проебаться . Нетстат показывает ::::10050
Egor
Чувство что объявлено но не слушает:(
George
Внутри докера не слушает, наверное
Egor
Фаиры и тд и тп. в стопе
Mikhail
с конфигом было бы проще разобраться, но кому нужна эта простота ...
Egor
Внутри докера не слушает, наверное
Ок попробую проверить :)
EndLessCat
apt update
cat /etc/*release* whereis apt
EndLessCat
собственно видно, что это таки альпайн и искать там APT смысла как бы и нет, т.к. там APK
EndLessCat
ну и далее как обычно :) правим все с учетом версии системы и пользуемся :)
Антон
whitch apt
꧁Aleksey
ну и далее как обычно :) правим все с учетом версии системы и пользуемся :)
а почему uname -a показывал следующее, не в курсе?Linux 6d3fba716663 4.15.0-46-generic #49-Ubuntu SMP Wed Feb 6 09:33:07 UTC 2019 x86_64 Linux
George
Потому что ядро между контейнерами общее
꧁Aleksey
Потому что ядро между контейнерами общее
спасибо огромное, не знал такой тонкости...наколка...
Игорь
Вопрос такой. У меня разворачивание продакшн и девелоп версий через compose отличается только entrypoint скриптами Как быть лучше в такой ситуации? Не хочется из-за этого создавать отдельный файл для деплоя одного и второго
George
Говго
George
Ансиблем деплой
George
Там и возможностей больше. И процесс унифицирован будет
Mike
Говго
люблю таких советчиков. не зная ни что у человека за задача, ни что они делает, сразу говорить, что его подход говно. это как говорить "не пользуйся тачкой, звездолет пизже! быстрее и можно не только вперед летать!", не думая о том, что у человека мало того, что нет денег на звездолет, так его еще и парковать негде у бабушки на даче, и вообще задача была — починить мотор знакомому, который попросил
George
А не просто "выкинь и все"
George
Вообще в концепции "на целевом хосте минимальное количество артефактов" - докер компоуз лишний
George
На самом деле у него одно хорошее применение - локально на машине разработчика или тестовом стенде быстро (и относительно грязно) развернуть набор сервисов
George
Все.
Mike
откуда эти абсолютные утверждения безотносительно конкретной задачи-то
Игорь
Звучит так, будто компоуз вообще бесполезная штука...
George
Ну, исторически - да
George
У него тяжёлая судьба.
George
Самое печальное, что 90% респондентов не понимают его ограничения и разницу между 2.* и 3.* форматами
Игорь
А можно, для более глубокого понимания, какие-то примеры, когда компоуз сфейлится, а ансимбле нет при развёртывании?
George
А можно, для более глубокого понимания, какие-то примеры, когда компоуз сфейлится, а ансимбле нет при развёртывании?
ну, чтобы прям компоуз сфейлился… Я бы сказал так, что в нем есть особенности, которые сильно портят жизнь
George
например. Он умеет override и через -f клеить несколько компоузов в один
George
но это костыль
Игорь
Хм, интересно. Нужно почитать про ансимбле
Nazar
можно, ли в docker-compose обновить все имейджи, и перезапустить только те контейнеры где поменялись имейджы?
Nazar
афигеть... серьезно?
Nazar
неа
Nazar
не работает
Nazar
а
Nazar
с up работает, бля зачем я всегда вручную это делал...
Ильдар
@vizdrag
George
идеальный вариант - пуллить отдельно. А то можно словить нежданчик, когда в локальном кэше образ старый, на докерхабе новый и оно полетело вдруг обновляться
Nazar
Так и нужно вроде как
Nazar
А если пулить отдельно, то то это что делать с компоузом?
George
в плане? типа вопрос нафига он нужен? верно