в ходе тестирования первого образа (iwtm/iwtm:0.3) были выявлены две проблемы:
❓ в установке enterprise база с событиями разделена по табличным пространствам, по одному пространству на каждый день. при запуске образа, собранного давно, в базе отсутствуют текущие табличные пространства, что не позволяет сохранить события.
✅ решение: перейти на версию standard
❓ в образе низкий лимит открытых файлов для пользователя, что не позволяет сервисам запускаться.
✅ решение: увеличить лимиты
echo "fs.file-max = 2097152" >> /etc/sysctl.conf
echo "fs.inotify.max_user_instances = 2097152" >> /etc/sysctl.conf
echo "fs.inotify.max_user_watches = 2097152" >> /etc/sysctl.conf
sysctl -p
этот шаг делать, если docker не установлен
https://docs.docker.com/engine/install/centos/
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum update -y
reboot
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin vim
sudo systemctl start docker
sudo systemctl enable docker
.
├── docker-compose.yml
├── Dockerfile
└── iwtm
├── conf_merge.zip
├── iwtm-adp-7.1.3.tar.gz
├── iwtm-installer-7.1.3.385-rhel7.run
├── iwtm-postgresql-9.6.19-7.1.3.tar.gz
└── opt_packages.zip
содержимое файлов:
# docker-compose.yml
services:
tm:
build: .
volumes:
- ./iwtm:/root/iwtm
- /sys/fs/cgroup:/sys/fs/cgroup
stdin_open: true
tty: true
hostname: iwtm
domainname: demo.lab
privileged: true
ports:
- "443:443"
- "25:25"
# Dockerfile
FROM centos:centos7
RUN yum -y update; yum clean all
RUN yum -y install systemd; yum clean all; \
(cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \
rm -f /lib/systemd/system/multi-user.target.wants/*;\
rm -f /etc/systemd/system/*.wants/*;\
rm -f /lib/systemd/system/local-fs.target.wants/*; \
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*;\
rm -f /lib/systemd/system/anaconda.target.wants/*;
RUN yum -y install net-utils bind-utils iproute initscripts rsyslog sudo; yum clean all;
VOLUME [ "/sys/fs/cgroup" ]
CMD ["/usr/sbin/init"]
cd iwtm
vim install.sh
# copy the following script:
#!/bin/bash
echo "Applying settings..."
echo "fs.file-max = 2097152" >> /etc/sysctl.conf
echo "fs.inotify.max_user_instances = 2097152" >> /etc/sysctl.conf
echo "fs.inotify.max_user_watches = 2097152" >> /etc/sysctl.conf
sysctl -p
echo "Installing iwtm..."
cd /root/iwtm
./iwtm-installer-7.1.3.385-rhel7.run -- --silent=yes --iwtm_db=postgres --iwtm_role=iwtms --consul_dc_name=iwtw --cfdb_lang=rus --user_lang=rus --sphinx_lang=eng,rus --daily_ts_fs_type=normal --daily_ts_count=1 --daily_ts_path_1=/u02/pgdata1 --main_ts_path=/u02/pgdata --archive_ts_path=/u02/arch --violation_days=90 --nonviolation_days=45 --screenshots_days=90 --skip-check-swap=yes --skip-check-space=yes --skip-check-ram=yes --skip-check-network=yes --skip-check-tmp=yes
echo "Clean up..."
yum clean all
# rm -rf /var/cache
# rm -rf /opt/distr
# rm -rf /opt/iw/distr
chmod +x iwtm-installer-7.1.3.385-rhel7.run
chmod +x install.sh
docker compose up tm
# в другом терминале выполнить:
docker compose exec tm bash
Если ошибка Error starting userland proxy: listen tcp4 0.0.0.0:25: bind: address already in use
, завершить процесс:
[root@iwtm iwtm]# ss -tlpn | grep 25
LISTEN 0 100 127.0.0.1:25 *:* users:(("master",pid=1321,fd=13))
[root@iwtm iwtm]# kill -9 1321
cd /root/iwtm
./install.sh
172.18.209.221
3268
389
dc=demo, dc=lab
demo\administrator
reboot -p
для выключения[root@iwtm iwtm]$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7937ff47cfe7 iwtm-iwtm "/usr/sbin/init" 20 minutes ago Exited (129) 12 seconds ago iwtm-iwtm-1
[root@iwtm iwtm]$ docker commit 7937ff47cfe7 iwtm/iwtm:0.6
sha256:43140db9243e4ef4a8a75b7af49fdcabfd6e9cc073210a81081cc8f8008ddc3e
[root@iwtm iwtm]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: iwtm
Password:
Login Succeeded
[root@iwtm iwtm]# docker push iwtm/iwtm:0.6
The push refers to repository [docker.io/iwtm/iwtm]
edd153549bf7: Pushing [==================> ] 6.234GB/17.22GB
0.6: digest: sha256:301f166d89898bd94e14bee062b4658d8cb7272901e127d198b5801be981cf59 size: 1379
готовые образа находятся по адресу: https://hub.docker.com/repository/docker/iwtm/iwtm
использование:
docker login
docker pull iwtm/iwtm:0.6
# docker-compose.yml
services:
tm:
image: iwtm/iwtm:0.6
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup
stdin_open: true
tty: true
hostname: iwtm
domainname: demo.lab
privileged: true
ports:
- "443:443"
- "25:25"
количество открытых файлов:
https://jhutar.blogspot.com/2017/12/error-too-many-open-files-when-inside.html
https://rtcamp.com/tutorials/linux/increase-open-files-limit/
su iwtm
psql postgresql://iwtm:xxXX1234@localhost:5433/postgres
ctr -n k8s.io images ls
https://serverfault.com/questions/1079369/kubeadm-with-containerd-cannot-use-locally-loaded-images