Combodo iTop ITSM & CMDB docker image
1M+
The image is based on phusion/baseimage and uses runit to manage services (apache, mysql, etc).
Run new iTop (see tags for specific iTop versions) container named my-itop:
sudo docker run -d -p 8000:80 --name=my-itop vbkunin/itop
Then go to http://localhost:8000/ to continue the installation.
Use this command to get the MySQL user credentials:
sudo docker logs my-itop | grep -A7 -B1 "Your MySQL user 'admin' has password:"
Or you can specify your own MySQL user password using MYSQL_PASS environment variable:
sudo docker run -d -p 8000:80 --env MYSQL_PASS='Pa$5w0rD' --name=my-itop vbkunin/itop
If you want to persist iTop configuration and/or MySQL data between the container recreations, mount it as a volume:
sudo docker run -d -p 8080:80 --name=my-itop -v my-itop-conf-volume:/var/www/html/conf -v my-itop-db-volume:/var/lib/mysql vbkunin/itop
But don't forget to fix the rights to the folder (in any case, iTop setup wizard will remind you):
sudo docker exec my-itop chown www-data:www-data /var/www/html/conf
Expose iTop extensions folder if you need it:
sudo docker run -d -p 8000:80 --name=my-itop -v /home/user/itop-extensions:/var/www/html/extensions vbkunin/itop
Уou can get base image without MySQL database server (only Apache and PHP) to use with your own one:
sudo docker run -d -p 8000:80 --name=my-itop vbkunin/itop:latest-base
External MariaDB container:
name: "itop-and-mariadb"
services:
itop:
image: vbkunin/itop:latest-base
ports:
- "8000:80"
volumes:
- ./itop/conf:/var/www/html/conf
- ./itop/extensions:/var/www/html/extensions
post_start:
- command: chown -R www-data:www-data /var/www/html/conf
user: root
depends_on:
- mariadb
restart: unless-stopped
mariadb: # db server name is 'mariadb'
image: mariadb:lts
volumes:
- db-data:/var/lib/mysql
environment:
MYSQL_DATABASE: itop
MYSQL_USER: itop
MYSQL_PASSWORD: itop
MARIADB_RANDOM_ROOT_PASSWORD: 1 # docker compose logs mariadb | grep 'GENERATED ROOT PASSWORD'
restart: unless-stopped
volumes:
db-data:
All-In-One container:
name: "itop-all-in-one"
services:
itop:
image: vbkunin/itop:latest
ports:
- "8000:80"
volumes:
- ./itop/conf:/var/www/html/conf
- ./itop/extensions:/var/www/html/extensions
- db-volume:/var/lib/mysql
environment:
MYSQL_PASS: change_me # or grep the generated password from the log when the container is first started.
post_start:
- command: chown -R www-data:www-data /var/www/html/conf
user: root
restart: unless-stopped
volumes:
db-volume:
The image ships with several useful scripts you can run like this:
sudo docker exec my-itop /script-name.sh [script_params]
If you need the iTop Toolkit you can simply get this:
sudo docker exec my-itop /install-toolkit.sh
A cron setup helper is aboard:
sudo docker exec my-itop /setup-itop-cron.sh Cron Pa$5w0rD
Then you should create iTop user account with login Cron and password Pa$5w0rD and grant him Administrator profile. The third argument (optional) is the absolute path to the log file or --without-logs key. By default, the log file is /var/www/html/log/cron.log.
There are other scripts:
conf-w shortcut without the leading slash: docker exec my-itop conf-w)conf-ro shortcut: docker exec my-itop conf-ro)If you're using this image for development (especially with PhpStorm), there are a few things for you.
install-xdebug.sh – install Xdebug PHP extension and setup it for remote debugging. Two arguments are xdebug.client_port and xdebug.idekey (defaults are 9003 and PHPSTORM, respectively).
sudo docker exec my-itop /install-xdebug.sh [client_port] [idekey]
start-itop-cron-debug.sh – start remote debugging of iTop background tasks script (cron.php). The first two arguments are iTop user and his password (admin and password) and the third argument is debug server configuration name (default is localhost) in PhpStorm which specified through PHP_IDE_CONFIG environment variable (more details).
sudo docker exec my-itop /start-itop-cron-debug.sh [auth_user] [auth_pwd] [php_ide_server_name]
enable-mysql-remote-connections.sh – add the bind-address = 0.0.0.0 directive to the MySQL configuration to allow connections from outside the container.
sudo docker exec my-itop /enable-mysql-remote-connections.sh
Do not forget to expose the MySQL port with -p 3306:3306 when running the container.
The application and web server logs are redirected to the container’s output streams STDOUT and STDERR so they can be viewed using docker logs <container>. To filter logs by a specific file, you can use tags:
sudo docker logs <container> | grep <tag>
| File | Tag | Output stream |
|---|---|---|
| /var/www/html/log/error.log | itop-error | STDERR |
| /var/www/html/log/cron.log | itop-cron | STDOUT |
| /var/www/html/log/setup.log | itop-setup | STDOUT |
| /var/log/apache2/access.log | apache-access | STDOUT |
| /var/log/apache2/error.log | apache-error | STDERR |
You can manage these parameters via the container environment variables LOG_STDOUT and LOG_STDERR. Set the variables to empty values to disable log redirection. Default values:
LOG_STDOUT=/var/www/html/log/setup.log:itop-setup,/var/www/html/log/cron.log:itop-cron,/var/log/apache2/access.log:apache-access
LOG_STDERR=/var/www/html/log/error.log:itop-error,/var/log/apache2/error.log:apache-error
Learn more about how Docker Engine works with logs and how to prevent disk-exhaustion by using the local logging driver.
The project uses multi-stage builds and a single Dockerfile to build both base (only Apache and PHP) and full images. Therefore, you have to specify the correct --target and the corresponding --tag when running the docker build command.
DOCKER_BUILDKIT=1 docker build \
--target=base \
--tag vbkunin/itop:3.2.2-base \
--build-arg ITOP_DOWNLOAD_URL="https://sourceforge.net/projects/itop/files/itop/3.2.2-1/iTop-3.2.2-1-17851.zip/download" \
-f Dockerfile .
DOCKER_BUILDKIT=1 docker build \
--target=full \
--tag vbkunin/itop:3.2.2 \
--build-arg ITOP_DOWNLOAD_URL="https://sourceforge.net/projects/itop/files/itop/3.2.2-1/iTop-3.2.2-1-17851.zip/download" \
-f Dockerfile .
The only mandatory build argument ITOP_DOWNLOAD_URL must contain a valid URL to the zip archive with the iTop release.
Multi-platform images for the Docker Hub are created and pushed using the docker buildx client:
docker buildx build \
--tag vbkunin/itop:"${IMAGE_TAG:?}" \
--platform="linux/arm64,linux/amd64" \
--push \
--target="${BUILD_TARGET:?}" \
--build-arg ITOP_DOWNLOAD_URL="${ITOP_DOWNLOAD_URL:?}" \
-f Dockerfile .
Content type
Image
Digest
sha256:92c7a4789…
Size
209.8 MB
Last updated
about 2 months ago
docker pull vbkunin/itop