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:"
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
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 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.1.1-base \
--build-arg ITOP_DOWNLOAD_URL="https://sourceforge.net/projects/itop/files/itop/3.1.1-1/iTop-3.1.1-1-12561.zip/download" \
-f Dockerfile .
DOCKER_BUILDKIT=1 docker build \
--target=full \
--tag vbkunin/itop:3.1.1 \
--build-arg ITOP_DOWNLOAD_URL="https://sourceforge.net/projects/itop/files/itop/3.1.1-1/iTop-3.1.1-1-12561.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 .