Zabbix-server-mysql:docker centosの最新バージョンがインストール中に一部のファイルをスキップしました。

Zabbix-server-mysql:docker centosの最新バージョンがインストール中に一部のファイルをスキップしました。

Dockerコンテナの本物のcentosイメージにZabbix-server-mysqlをインストールしようとしています。

[root@desktop]# docker run --rm -ti centos:latest /bin/bash
[root@0e4f336ff674]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
[root@0e4f336ff674]# rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm
[root@0e4f336ff674]# yum install http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-server-mysql-3.2.3-1.el7.x86_64.rpm

このマニュアル: https://www.zabbix.com/documentation/3.2/manual/installation/install_from_packages/server_installation_with_mysqlMySQLサーバーにzabbix DBを作成する必要があるため、インストール中に「/usr/share/doc/zabbix-server-mysql-3.2.3/create.sql.gz」ファイルを作成する必要があります。しかし、このファイルが欠落しているようです。

[root@0e4f336ff674]# ls -ld /usr/share/doc/zabbix-server-mysql-3.2.3/create.sql.gz
ls: cannot access /usr/share/doc/zabbix-server-mysql-3.2.3/create.sql.gz: No such file or directory

興味深いのは、このファイルが実際に* .rpmファイルに存在することです。

[root@0e4f336ff674]# rpm2cpio http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-server-mysql-3.2.3-1.el7.x86_64.rpm | cpio -t | grep create
./usr/share/doc/zabbix-server-mysql-3.2.3/create.sql.gz

/usr/share/doc/zabbix-server-mysql-3.2.3/また、パッケージには、ディレクトリを削除できるインストール前またはインストール後のスクリプトがないようです。

[root@0e4f336ff674]# rpm -qp --scripts http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-server-mysql-3.2.3-1.el7.x86_64.rpm
preinstall scriptlet (using /bin/sh):
getent group zabbix > /dev/null || groupadd -r zabbix
getent passwd zabbix > /dev/null || \
    useradd -r -g zabbix -d /var/lib/zabbix -s /sbin/nologin \
    -c "Zabbix Monitoring System" zabbix
:
postinstall scriptlet (using /bin/sh):

if [ $1 -eq 1 ] ; then 
        # Initial installation 
        /usr/bin/systemctl preset zabbix-server.service >/dev/null 2>&1 || : 
fi 
/usr/sbin/update-alternatives --install /usr/sbin/zabbix_server \
    zabbix-server /usr/sbin/zabbix_server_mysql 10
:
<...>

それでは、何が問題なのでしょうか?

PS:既存の公式zabbix-on-dockerイメージを知っています:github.com/zabbix/zabbix-docker

ベストアンサー1

おそらく、システムで制御されているオペレーティングシステムでコマンドを実行するためにシステムデーモンと対話しようとしているので、「systemctlプリセット」をブロックします。ただし、Dockerコンテナにはsystemdデーモンはありません。

この潜在的な問題を回避するために、次の方法を試してみてください。https://github.com/gdraheim/docker-systemctl-replacement「systemctlプリセット」を実行します。

おすすめ記事