Troubleshooting

Running Docker: Hardware assisted virtualization and data execution protection must be enabled in the BIOS

Problem running Hyper-V (Windows)

Depending on your PC model or BIOS settings, it may be required to enable specific features for running the docker virtualization.

After each step a reboot is required to activate changes!
  1. Solution-A (If Hyper-V is totally disabled or not installed)

    • Open PowerShell as administrator and

    • Enable Hyper-V with: dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All

  2. Solution-B (If Hyper-V feature is already enabled but doesn’t work)

    • Open PowerShell as administrator and

    • Modify Hyper-V launch to auto: bcdedit /set hypervisorlaunchtype auto

  3. Solution-C

How to force Percept to stop or how to stop not correctly terminated Percept instances

You can use docker ps inside of your command line to see which instances are still active.

Percept automatically starts and stops docker containers on demand.

This will only work in the case you want to terminate all Percept instances in case ctrl+c does not work and/or clean up instances which should already be stopped.

Overview of running Docker containers
Figure 1. Example output of docker ps: the base containers and one project is running

You can then run docker stop and add the container ID of the containers to stop e.g. docker stop 1f58924a885e e8bce70a796c 41c6efce8103 fcb77da3b023 c1cfb25c3555 ed907ee7fff8 for the image above, to stop all running containers.

  1. Helpful Docker Commands

Error: iptables failed

If you get the following error when starting Percept or a Project in Percept, which includes iptables failed … iptables: No chain/target/match by that name (see the image below as well)

Docker IP Table Error

or

ERROR: Failed to program FILTER chain: iptables failed: iptables --wait -I FORWARD -o br-be839b6aabca -j DOCKER: iptables v1.6.1: Couldn't load target `DOCKER':No such file or directory

Try `iptables -h' or 'iptables --help' for more information.
 (exit status 2)

if you are calling docker-compose -f …​ up.

The issue is most likely the following:

Docker uses an iptables chain "DOCKER" for adding port mappings to containers. You can check for its presence by running

  • iptables -L -v -n

If this chain is missing, Percept would not start up and if it is already running, launching a project will fail because it creates a port mapping on the fly.

Please check your system if something is deleting this chain. This could be a firewall script, a startup script, a VPN connect script, a restore of the iptables saved before docker was run (service iptables save) or a manually ran command (e.g. iptables -t filter -F followed by iptables -t filter -X).

You can recreate the docker iptables by restarting the docker daemon e.g. on Ubuntu: systemctl restart docker

Error Port 80 not available

It can happen, especially on Windows based systems, that another system resource or application is using Port 80. Therefore the frontend will not start. You can change the port used by the frontend in the docker-compose file. See ports used by Percept for a list of used ports and if you can change them.