Code Monkey home page Code Monkey logo

Comments (15)

betanzos avatar betanzos commented on June 27, 2024 1

Works for me!

from cabolabs-ehrserver.

ppazos avatar ppazos commented on June 27, 2024

@betanzos the problem is:

com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

The container can't access MySQL. There should be a problem with the network configuration, or the MySQL service is not running when EHRServer is executed.

from cabolabs-ehrserver.

betanzos avatar betanzos commented on June 27, 2024

The container can't access MySQL

This is because the app container is trying to connect to the database inside itself:

03-Dec-2020 02:23:14.314 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -DdataSource.url=jdbc:mysql://127.0.0.1:3306/ehrserver2

or the MySQL service is not running when EHRServer is executed.

There is no problem with this. The docker-compose.yml is well configured to wait for mysql service start before start the app:

depends_on:
      - db

There should be a problem with the network configuration

I able to access the mysql container (db) from the app conatiner. I know this because I run nc -vz db 3306 inside the app container and get the right answer.

The problem the definition of CATALINA_OPTS in the Dockerfile and is fixed by dropped out it, without do anything more.

from cabolabs-ehrserver.

ppazos avatar ppazos commented on June 27, 2024

@betanzos to run this dockerfile, the database is external, there is no configuration of mysql inside the image. To access the host database, it needs to run with network=host parameter. The CATALINA... line is OK.

Please check https://twitter.com/ppazos/status/1332859632948301828?s=20 and https://youtu.be/o-XMb7lGLio

For me the dockerfile works OK. Though I can't run the docker-compose, there is an issue connecting to the db container.

from cabolabs-ehrserver.

betanzos avatar betanzos commented on June 27, 2024

to run this dockerfile, the database is external, there is no configuration of mysql inside the image. To access the host database, it needs to run with network=host parameter. The CATALINA... line is OK.

Docker images are almost always used with orchestration softwares like Kubernetes or Docker Swarm. This kind of software have the full control about containers lifecycle, including network configuration. So, IMO is a really bad idea to build a Docker image which force clients to use a predefined network design (network=host).

But, let's put an example...what if instead having the database on the same machine as Docker we have an specific server for it (accessible over the network)? In this case our Docker image don't work because we assume that database would be running on the same machine as Docker and we define the JDBC URL with 127.0.0.1 (from Dockerfile -DdataSource.url=jdbc:mysql://127.0.0.1:3306/ehrserver2).

The above case is (almost) the same when we use the docker-compose.yml file. In first place it define a service for the web app (called web) and then another (called db) for deploy the database in a Docker container, not in the host machine. In the web service there are some env var definitions which allow us to configure the datasource params (host, port, db name, username, password, etc.) with our production environment values, but none of them will be used because they will be overriden by the CATALINA_OPTS definitions.

If you want to run your database in the host machine, isn't necessary to put the datasource definition inside the image, using env vars at runtime is enough:

$ docker run --rm --network="host" \
      -e EHRSERVER_MYSQL_DB_HOST=127.0.0.1 \
      -e EHRSERVER_MYSQL_DB_PORT=3306 \
      -e EHRSERVER_MYSQL_DB_USERNAME=ehrserver2 \
      -e EHRSERVER_MYSQL_DB_PASSWORD=ehrserver2 \
      -e EHRSERVER_DB_NAME=ehrserver2 \
      ehrserver

Otherwise we can only connect to a database on the host machine unless we override the CATALINA_OPTS definition like below:

$ docker run --rm
      -e CATALINA_OPTS=
      -e EHRSERVER_MYSQL_DB_HOST=218.31.45.68 \
      -e EHRSERVER_MYSQL_DB_PORT=4400 \
      -e EHRSERVER_MYSQL_DB_USERNAME=ehrserver-user \
      -e EHRSERVER_MYSQL_DB_PASSWORD=super-strong-pass \
      -e EHRSERVER_DB_NAME=my-ehrserver \
      ehrserver

For me the dockerfile works OK. Though I can't run the docker-compose, there is an issue connecting to the db container.

For sure you are having this same problem. Try with this in docker-compose.yml:

 environment:
      - CATALINA_OPTS=

from cabolabs-ehrserver.

ppazos avatar ppazos commented on June 27, 2024

Docker images are almost always used with orchestration softwares like Kubernetes or Docker Swarm. This kind of software have the full control about containers lifecycle, including network configuration. So, IMO is a really bad idea to build a Docker image which force clients to use a predefined network design (network=host).

@betanzos the current dockerfile doesn't work that way. My knowledge about docker and it's ecosystem is limited. You are welcome to contribute a fully working configuration. I can test it and add it to the repo. Also the current docker compose file is broken IMO. You are also welcome to contribute to that one.

As a reference https://www.youtube.com/watch?v=o-XMb7lGLio

from cabolabs-ehrserver.

ppazos avatar ppazos commented on June 27, 2024

@betanzos closing this one until someone wants to contribute a compose file that works.

from cabolabs-ehrserver.

betanzos avatar betanzos commented on June 27, 2024

Hi @ppazos, sorry for the late reply but I hardly had time to dedicate to this matter.

Please, check my PR about this issue (#1092). The current compose file is good and doesn't need any kind of tweak, the root cause of this problem is in the Dockerfile that forces to have the database running on IP 127.0.0.1 (localhost) and this is wrong.

from cabolabs-ehrserver.

ppazos avatar ppazos commented on June 27, 2024

Thanks @betanzos I have checked the PR for me it doesn't work without the parameters.

Also the current dockerfile is what I was able to do that works, I'm not saying that is the best way of doing it. But until I get help from someone that knows docker better than me, I'm not able to change the current dockerfile.

from cabolabs-ehrserver.

betanzos avatar betanzos commented on June 27, 2024

I have checked the PR for me it doesn't work without the parameters.

@ppazos you have tried to run use the Dockerfile from this PR and run the image in the way I commented?

$ docker run --rm --network="host" \
      -e EHRSERVER_MYSQL_DB_HOST=127.0.0.1 \
      -e EHRSERVER_MYSQL_DB_PORT=3306 \
      -e EHRSERVER_MYSQL_DB_USERNAME=ehrserver2 \
      -e EHRSERVER_MYSQL_DB_PASSWORD=ehrserver2 \
      -e EHRSERVER_DB_NAME=ehrserver2 \
      ehrserver

I have been reviewing this topic and I think the proposed Dockerfile is enough good for any environment configuration.

from cabolabs-ehrserver.

ppazos avatar ppazos commented on June 27, 2024

@betanzos I managed to create a docker-compose file that works creating a mysql container and a tomcat container, please check it in the docker-compose folder, I think it's better than the Dockerfile run

from cabolabs-ehrserver.

betanzos avatar betanzos commented on June 27, 2024

I am unable to start the entire system. The WAR file and the directories used as volumes all exist.

image

from cabolabs-ehrserver.

ppazos avatar ppazos commented on June 27, 2024

@betanzos from what I can search online it has to do with the volumes inside the server service.

Can you send an ls of your build/libs folder?

Also please check folder permissions on docker-compose/*

Another thing to try is docker-compose --verbose up

I didn't use -d to run it:

Run with docker-compose:

    $ grails war                   << will generate build/libs/cabolabs-ehrserver-2.3.war.original
    $ cd docker-compose
    $ docker-compose up
    localhost:8080 will be Adminer (a MySQL manager)
    localhost:8888 will be Tomcat (running EHRServer)
    Change the ports and SMTP configuration in the docker-compose file

from cabolabs-ehrserver.

betanzos avatar betanzos commented on June 27, 2024

@betanzos from what I can search online it has to do with the volumes inside the server service.

I think so but, for me, all directories used to mount volumes have the right permissions.

Can you send an ls of your build/libs folder?

image

Also please check folder permissions on docker-compose/*

image

Another thing to try is docker-compose --verbose up
I didn't use -d to run it:

There are no differences in using the -d param. However, I added below the verbose output without the -d.

compose.config.config.find: Using configuration files: ./docker-compose.yml
compose.cli.docker_client.get_client: docker-compose version 1.29.2, build 5becea4c
docker-py version: 5.0.0
CPython version: 3.7.10
OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019
compose.cli.docker_client.get_client: Docker base_url: http+docker://localhost
compose.cli.docker_client.get_client: Docker version: Platform={'Name': 'Docker Engine - Community'}, Components=[{'Name': 'Engine', 'Version': '20.10.11', 'Details': {'ApiVersion': '1.41', 'Arch': 'amd64', 'BuildTime': '2021-11-18T00:35:39.000000000+00:00', 'Experimental': 'false', 'GitCommit': '847da18', 'GoVersion': 'go1.16.9', 'KernelVersion': '5.10.102.1-microsoft-standard-WSL2', 'MinAPIVersion': '1.12', 'Os': 'linux'}}, {'Name': 'containerd', 'Version': '1.4.12', 'Details': {'GitCommit': '7b11cfaabd73bb80907dd23182b9347b4245eb5d'}}, {'Name': 'runc', 'Version': '1.0.2', 'Details': {'GitCommit': 'v1.0.2-0-g52b36a2'}}, {'Name': 'docker-init', 'Version': '0.19.0', 'Details': {'GitCommit': 'de40ad0'}}], Version=20.10.11, ApiVersion=1.41, MinAPIVersion=1.12, GitCommit=847da18, GoVersion=go1.16.9, Os=linux, Arch=amd64, KernelVersion=5.10.102.1-microsoft-standard-WSL2, BuildTime=2021-11-18T00:35:39.000000000+00:00
compose.cli.verbose_proxy.proxy_callable: docker inspect_network <- ('dockercompose_default')
compose.cli.verbose_proxy.proxy_callable: docker info <- ()
compose.cli.verbose_proxy.proxy_callable: docker info -> {'Architecture': 'x86_64',
 'BridgeNfIp6tables': True,
 'BridgeNfIptables': True,
 'CPUSet': True,
 'CPUShares': True,
 'CgroupDriver': 'cgroupfs',
 'CgroupVersion': '1',
 'ContainerdCommit': {'Expected': '7b11cfaabd73bb80907dd23182b9347b4245eb5d',
                      'ID': '7b11cfaabd73bb80907dd23182b9347b4245eb5d'},
 'Containers': 35,
...
compose.cli.verbose_proxy.proxy_callable: docker inspect_network <- ('docker-compose_default')
compose.network.ensure: Creating network "docker-compose_default" with the default driver
compose.cli.verbose_proxy.proxy_callable: docker create_network <- (name='docker-compose_default', driver=None, options=None, ipam=None, internal=False, enable_ipv6=False, labels={'com.docker.compose.project': 'docker-compose', 'com.docker.compose.network': 'default', 'com.docker.compose.version': '1.29.2'}, attachable=True, check_duplicate=True)
compose.cli.verbose_proxy.proxy_callable: docker create_network -> {'Id': '4c4f897c6221704f9bb29f2d612addfb6b8e7d264716245e8f36eaafd82344f6',
 'Warning': ''}
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=False, filters={'label': ['com.docker.compose.project=docker-compose', 'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=False, filters={'label': ['com.docker.compose.project=dockercompose', 'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=docker-compose', 'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=dockercompose', 'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=docker-compose', 'com.docker.compose.service=db', 'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=dockercompose', 'com.docker.compose.service=db', 'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=docker-compose', 'com.docker.compose.service=server', 'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=dockercompose', 'com.docker.compose.service=server', 'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=docker-compose', 'com.docker.compose.service=adminer', 'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=dockercompose', 'com.docker.compose.service=adminer', 'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('mysql:5.7.38-debian')
compose.service.pull: Pulling db (mysql:5.7.38-debian)...
compose.cli.verbose_proxy.proxy_callable: docker pull <- ('mysql', tag='5.7.38-debian', stream=True, platform=None)
compose.cli.verbose_proxy.proxy_callable: docker pull -> <generator object APIClient._stream_helper at 0x7f9fde6617d0>
5.7.38-debian: Pulling from library/mysql
ac2fb615420c: Pull complete
c67721b86bd6: Pull complete
8a459e3867bf: Pull complete
4146b33aaf1f: Pull complete
01dc4ff4603c: Pull complete
7eae6e50dbb1: Pull complete
ba7a8db4d7e2: Pull complete
54cbb2253505: Pull complete
2fa6b64c13ff: Pull complete
29961c6b0e84: Pull complete
b9a7e69ecd8e: Pull complete
Digest: sha256:367d1dbfd4483258ef7a652728e5b9952fbcecb85279e402aa9e5d87de8231a0
Status: Downloaded newer image for mysql:5.7.38-debian
compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('tomcat:8.5.81-jdk8')
compose.service.pull: Pulling server (tomcat:8.5.81-jdk8)...
compose.cli.verbose_proxy.proxy_callable: docker pull <- ('tomcat', tag='8.5.81-jdk8', stream=True, platform=None)
compose.cli.verbose_proxy.proxy_callable: docker pull -> <generator object APIClient._stream_helper at 0x7f9fde661dd0>
8.5.81-jdk8: Pulling from library/tomcat
405f018f9d1d: Pull complete
9c045aca8dd9: Pull complete
c983368473e0: Pull complete
dc34dedd9974: Pull complete
6a39e624dcd5: Pull complete
8dd68cadc037: Pull complete
098819ceceab: Pull complete
Digest: sha256:13587f21af1dcc00bd29035a32e41255e2dd4e9ef2517f17eb3c0e7f3d1a57eb
Status: Downloaded newer image for tomcat:8.5.81-jdk8
compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('adminer')
compose.service.pull: Pulling adminer (adminer:)...
compose.cli.verbose_proxy.proxy_callable: docker pull <- ('adminer', tag='latest', stream=True, platform=None)
compose.cli.verbose_proxy.proxy_callable: docker pull -> <generator object APIClient._stream_helper at 0x7f9fde661bd0>
latest: Pulling from library/adminer
2408cc74d12b: Pull complete
fde5ea1cb188: Pull complete
3935ba60366a: Pull complete
4712e34f1d29: Pull complete
f977c6fe9d17: Pull complete
3fbd4cdb2d1d: Pull complete
ae6f00126b0c: Pull complete
d19a19b0dd54: Pull complete
68c86c29db19: Pull complete
bba30ca744e5: Pull complete
1de97f59f05f: Pull complete
1ac9ebb88097: Pull complete
d5a1b0dc6910: Pull complete
af3c35224056: Pull complete
a971800d6810: Pull complete
Digest: sha256:9b171348a0278a3f63e3be48ecd0da57ea9ad006f9f22126c9549b435b9eede9
Status: Downloaded newer image for adminer:latest
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=docker-compose', 'com.docker.compose.service=db', 'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=dockercompose', 'com.docker.compose.service=db', 'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.project._get_convergence_plans: server has upstream changes (db)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'status': ['created', 'exited'], 'label': ['com.docker.compose.project=docker-compose', 'com.docker.compose.service=server', 'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'status': ['created', 'exited'], 'label': ['com.docker.compose.project=dockercompose', 'com.docker.compose.service=server', 'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=False, filters={'label': ['com.docker.compose.project=docker-compose', 'com.docker.compose.service=server', 'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=False, filters={'label': ['com.docker.compose.project=dockercompose', 'com.docker.compose.service=server', 'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=docker-compose', 'com.docker.compose.service=server', 'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=dockercompose', 'com.docker.compose.service=server', 'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=docker-compose', 'com.docker.compose.service=adminer', 'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=dockercompose', 'com.docker.compose.service=adminer', 'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.parallel.feed_queue: Pending: {<Service: server>, <Service: adminer>, <Service: db>}
compose.parallel.feed_queue: Starting producer thread for <Service: adminer>
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=docker-compose', 'com.docker.compose.service=adminer', 'com.docker.compose.oneoff=False']})
compose.parallel.feed_queue: Starting producer thread for <Service: db>
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=docker-compose', 'com.docker.compose.service=db', 'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=dockercompose', 'com.docker.compose.service=adminer', 'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=dockercompose', 'com.docker.compose.service=db', 'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
Creating docker-compose_adminer_1 ...
compose.parallel.feed_queue: Pending: {ServiceName(project='docker-compose', service='adminer', number=1)}
compose.parallel.feed_queue: Starting producer thread for ServiceName(project='docker-compose', service='adminer', number=1)
compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('adminer')
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
Creating docker-compose_db_1      ...
compose.parallel.feed_queue: Pending: {ServiceName(project='docker-compose', service='db', number=1)}
compose.parallel.feed_queue: Starting producer thread for ServiceName(project='docker-compose', service='db', number=1)
compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('mysql:5.7.38-debian')
compose.cli.verbose_proxy.proxy_callable: docker inspect_image -> {'Architecture': 'amd64',
 'Author': '',
 'Comment': '',
 'Config': {'AttachStderr': False,
            'AttachStdin': False,
            'AttachStdout': False,
            'Cmd': ['php', '-S', '[::]:8080', '-t', '/var/www/html'],
            'Domainname': '',
            'Entrypoint': ['entrypoint.sh', 'docker-php-entrypoint'],
            'Env': ['PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
...
compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('adminer')
compose.cli.verbose_proxy.proxy_callable: docker inspect_image -> {'Architecture': 'amd64',
 'Author': '',
 'Comment': '',
 'Config': {'AttachStderr': False,
            'AttachStdin': False,
            'AttachStdout': False,
            'Cmd': ['mysqld'],
            'Domainname': '',
            'Entrypoint': ['docker-entrypoint.sh'],
            'Env': ['PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
...
compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('mysql:5.7.38-debian')
compose.cli.verbose_proxy.proxy_callable: docker inspect_image -> {'Architecture': 'amd64',
 'Author': '',
 'Comment': '',
 'Config': {'AttachStderr': False,
            'AttachStdin': False,
            'AttachStdout': False,
            'Cmd': ['php', '-S', '[::]:8080', '-t', '/var/www/html'],
            'Domainname': '',
            'Entrypoint': ['entrypoint.sh', 'docker-php-entrypoint'],
            'Env': ['PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
...
compose.service.build_container_labels: Added config hash: bbf0bcbfcdb335dc1ba1b5e0e3da71b26eba01477b2ddaa99e822e4a8a7f4208
compose.cli.verbose_proxy.proxy_callable: docker inspect_image -> {'Architecture': 'amd64',
 'Author': '',
 'Comment': '',
 'Config': {'AttachStderr': False,
            'AttachStdin': False,
            'AttachStdout': False,
            'Cmd': ['mysqld'],
            'Domainname': '',
            'Entrypoint': ['docker-entrypoint.sh'],
            'Env': ['PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
...
compose.cli.verbose_proxy.proxy_callable: docker create_host_config <- (links=[], port_bindings={'8080/tcp': ['8080']}, binds=[], volumes_from=[], privileged=False, network_mode='docker-compose_default', devices=None, device_requests=None, dns=None, dns_opt=None, dns_search=None, restart_policy={'Name': 'always', 'MaximumRetryCount': 0}, runtime=None, cap_add=None, cap_drop=None, mem_limit=None, mem_reservation=None, memswap_limit=None, ulimits=None, log_config={'Type': '', 'Config': {}}, extra_hosts=None, read_only=None, pid_mode=None, security_opt=None, ipc_mode=None, cgroup_parent=None, cpu_quota=None, shm_size=None, sysctls=None, pids_limit=None, tmpfs=None, oom_kill_disable=None, oom_score_adj=None, mem_swappiness=None, group_add=None, userns_mode=None, init=None, init_path=None, isolation=None, cpu_count=None, cpu_percent=None, nano_cpus=None, volume_driver=None, cpuset_cpus=None, cpu_shares=None, storage_opt=None, blkio_weight=None, blkio_weight_device=None, device_read_bps=None, device_read_iops=None, device_write_bps=None, device_write_iops=None, mounts=None, device_cgroup_rules=None, cpu_period=None, cpu_rt_period=None, cpu_rt_runtime=None)
compose.service.build_container_labels: Added config hash: 2903559535fc073abf3dbedbf9cf90933096a309a66c3bfc769ea8439a6f45c8
compose.cli.verbose_proxy.proxy_callable: docker create_host_config -> {'Binds': [],
 'Links': [],
 'LogConfig': {'Config': {}, 'Type': ''},
 'NetworkMode': 'docker-compose_default',
 'PortBindings': {'8080/tcp': [{'HostIp': '', 'HostPort': '8080'}]},
 'RestartPolicy': {'MaximumRetryCount': 0, 'Name': 'always'},
 'VolumesFrom': []}
compose.cli.verbose_proxy.proxy_callable: docker create_host_config <- (links=[], port_bindings={'3306/tcp': ['3366']}, binds=['/home/betanzos/cabolabs-ehrserver/docker-compose/database:/var/lib/mysql:rw'], volumes_from=[], privileged=False, network_mode='docker-compose_default', devices=None, device_requests=None, dns=None, dns_opt=None, dns_search=None, restart_policy={'Name': 'always', 'MaximumRetryCount': 0}, runtime=None, cap_add=None, cap_drop=None, mem_limit=None, mem_reservation=None, memswap_limit=None, ulimits=None, log_config={'Type': '', 'Config': {}}, extra_hosts=None, read_only=None, pid_mode=None, security_opt=None, ipc_mode=None, cgroup_parent=None, cpu_quota=None, shm_size=None, sysctls=None, pids_limit=None, tmpfs=None, oom_kill_disable=None, oom_score_adj=None, mem_swappiness=None, group_add=None, userns_mode=None, init=None, init_path=None, isolation=None, cpu_count=None, cpu_percent=None, nano_cpus=None, volume_driver=None, cpuset_cpus=None, cpu_shares=None, storage_opt=None, blkio_weight=None, blkio_weight_device=None, device_read_bps=None, device_read_iops=None, device_write_bps=None, device_write_iops=None, mounts=None, device_cgroup_rules=None, cpu_period=None, cpu_rt_period=None, cpu_rt_runtime=None)
compose.cli.verbose_proxy.proxy_callable: docker create_container <- (image='adminer', ports=[('8080', 'tcp')], volumes={}, name='docker-compose_adminer_1', detach=True, environment=[], labels={'com.docker.compose.project': 'docker-compose', 'com.docker.compose.service': 'adminer', 'com.docker.compose.oneoff': 'False', 'com.docker.compose.project.working_dir': '/home/betanzos/cabolabs-ehrserver/docker-compose', 'com.docker.compose.project.config_files': 'docker-compose.yml', 'com.docker.compose.container-number': '1', 'com.docker.compose.version': '1.29.2', 'com.docker.compose.config-hash': 'bbf0bcbfcdb335dc1ba1b5e0e3da71b26eba01477b2ddaa99e822e4a8a7f4208'}, host_config={'NetworkMode': 'docker-compose_default', 'RestartPolicy': {'Name': 'always', 'MaximumRetryCount': 0}, 'VolumesFrom': [], 'Binds': [], 'PortBindings': {'8080/tcp': [{'HostIp': '', 'HostPort': '8080'}]}, 'Links': [], 'LogConfig': {'Type': '', 'Config': {}}}, networking_config={'EndpointsConfig': {'docker-compose_default': {'Aliases': ['adminer'], 'IPAMConfig': {}}}})
compose.cli.verbose_proxy.proxy_callable: docker create_host_config -> {'Binds': ['/home/betanzos/cabolabs-ehrserver/docker-compose/database:/var/lib/mysql:rw'],
 'Links': [],
 'LogConfig': {'Config': {}, 'Type': ''},
 'NetworkMode': 'docker-compose_default',
 'PortBindings': {'3306/tcp': [{'HostIp': '', 'HostPort': '3366'}]},
 'RestartPolicy': {'MaximumRetryCount': 0, 'Name': 'always'},
 'VolumesFrom': []}
compose.cli.verbose_proxy.proxy_callable: docker create_container <- (environment=['MYSQL_DATABASE=ehrserver2', 'MYSQL_USER=ehrserver2', 'MYSQL_PASSWORD=ehrserver2', 'MYSQL_ROOT_PASSWORD=root'], image='mysql:5.7.38-debian', ports=[('3306', 'tcp')], volumes={'/var/lib/mysql': {}}, name='docker-compose_db_1', detach=True, labels={'com.docker.compose.project': 'docker-compose', 'com.docker.compose.service': 'db', 'com.docker.compose.oneoff': 'False', 'com.docker.compose.project.working_dir': '/home/betanzos/cabolabs-ehrserver/docker-compose', 'com.docker.compose.project.config_files': 'docker-compose.yml', 'com.docker.compose.container-number': '1', 'com.docker.compose.version': '1.29.2', 'com.docker.compose.config-hash': '2903559535fc073abf3dbedbf9cf90933096a309a66c3bfc769ea8439a6f45c8'}, host_config={'NetworkMode': 'docker-compose_default', 'RestartPolicy': {'Name': 'always', 'MaximumRetryCount': 0}, 'VolumesFrom': [], 'Binds': ['/home/betanzos/cabolabs-ehrserver/docker-compose/database:/var/lib/mysql:rw'], 'PortBindings': {'3306/tcp': [{'HostIp': '', 'HostPort': '3366'}]}, 'Links': [], 'LogConfig': {'Type': '', 'Config': {}}}, networking_config={'EndpointsConfig': {'docker-compose_default': {'Aliases': ['db'], 'IPAMConfig': {}}}})
compose.parallel.feed_queue: Pending: {<Service: server>}
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: {<Service: server>}
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: {<Service: server>}
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: {<Service: server>}
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: set()
compose.cli.verbose_proxy.proxy_callable: docker create_container -> {'Id': '551460b6eaec84aa0aa2558e64e6213c227e08c231291591a6ecb6f0ccd3c96a',
 'Warnings': []}
compose.cli.verbose_proxy.proxy_callable: docker inspect_container <- ('551460b6eaec84aa0aa2558e64e6213c227e08c231291591a6ecb6f0ccd3c96a')
compose.cli.verbose_proxy.proxy_callable: docker create_container -> {'Id': '49a7de47330f30923546cabd51a1e481f13217e63e03a4bec5658871b9f1469a',
 'Warnings': []}
compose.cli.verbose_proxy.proxy_callable: docker inspect_container <- ('49a7de47330f30923546cabd51a1e481f13217e63e03a4bec5658871b9f1469a')
compose.cli.verbose_proxy.proxy_callable: docker inspect_container -> {'AppArmorProfile': '',
 'Args': ['mysqld'],
 'Config': {'AttachStderr': False,
            'AttachStdin': False,
            'AttachStdout': False,
            'Cmd': ['mysqld'],
            'Domainname': '',
            'Entrypoint': ['docker-entrypoint.sh'],
            'Env': ['MYSQL_DATABASE=ehrserver2',
                    'MYSQL_USER=ehrserver2',
...
compose.cli.verbose_proxy.proxy_callable: docker attach <- ('551460b6eaec84aa0aa2558e64e6213c227e08c231291591a6ecb6f0ccd3c96a', stdout=True, stderr=True, stream=True)
compose.cli.verbose_proxy.proxy_callable: docker inspect_container -> {'AppArmorProfile': '',
 'Args': ['docker-php-entrypoint',
          'php',
          '-S',
          '[::]:8080',
          '-t',
          '/var/www/html'],
 'Config': {'AttachStderr': False,
            'AttachStdin': False,
            'AttachStdout': False,
...
compose.cli.verbose_proxy.proxy_callable: docker attach <- ('49a7de47330f30923546cabd51a1e481f13217e63e03a4bec5658871b9f1469a', stdout=True, stderr=True, stream=True)
compose.cli.verbose_proxy.proxy_callable: docker attach -> <docker.types.daemon.CancellableStream object at 0x7f9fde5bdbd0>
compose.cli.verbose_proxy.proxy_callable: docker disconnect_container_from_network <- ('551460b6eaec84aa0aa2558e64e6213c227e08c231291591a6ecb6f0ccd3c96a', 'docker-compose_default')
compose.cli.verbose_proxy.proxy_callable: docker attach -> <docker.types.daemon.CancellableStream object at 0x7f9fde5bbb10>
compose.cli.verbose_proxy.proxy_callable: docker disconnect_container_from_network <- ('49a7de47330f30923546cabd51a1e481f13217e63e03a4bec5658871b9f1469a', 'docker-compose_default')
compose.cli.verbose_proxy.proxy_callable: docker disconnect_container_from_network -> None
compose.cli.verbose_proxy.proxy_callable: docker connect_container_to_network <- ('551460b6eaec84aa0aa2558e64e6213c227e08c231291591a6ecb6f0ccd3c96a', 'docker-compose_default', aliases=['db', '551460b6eaec'], ipv4_address=None, ipv6_address=None, links=[], link_local_ips=None)
compose.cli.verbose_proxy.proxy_callable: docker disconnect_container_from_network -> None
compose.cli.verbose_proxy.proxy_callable: docker connect_container_to_network <- ('49a7de47330f30923546cabd51a1e481f13217e63e03a4bec5658871b9f1469a', 'docker-compose_default', aliases=['49a7de47330f', 'adminer'], ipv4_address=None, ipv6_address=None, links=[], link_local_ips=None)
compose.cli.verbose_proxy.proxy_callable: docker connect_container_to_network -> None
compose.cli.verbose_proxy.proxy_callable: docker start <- ('551460b6eaec84aa0aa2558e64e6213c227e08c231291591a6ecb6f0ccd3c96a')
compose.cli.verbose_proxy.proxy_callable: docker connect_container_to_network -> None
compose.cli.verbose_proxy.proxy_callable: docker start <- ('49a7de47330f30923546cabd51a1e481f13217e63e03a4bec5658871b9f1469a')
compose.parallel.feed_queue: Pending: {<Service: server>}
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: {<Service: server>}
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: {<Service: server>}
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: {<Service: server>}
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: {<Service: server>}
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: {<Service: server>}
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: set()
Creating docker-compose_adminer_1 ... done                                                                                                                                                                      compose.parallel.parallel_execute_iter: Finished processing: ServiceName(project='docker-compose', service='adminer', number=1)
compose.parallel.feed_queue: Pending: set()
compose.parallel.parallel_execute_iter: Finished processing: <Service: adminer>
compose.parallel.feed_queue: Pending: {<Service: server>}
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: {<Service: server>}
compose.cli.verbose_proxy.proxy_callable: docker start -> None
Creating docker-compose_db_1      ... done
compose.parallel.feed_queue: Pending: set()
compose.parallel.parallel_execute_iter: Finished processing: <Service: db>
compose.parallel.feed_queue: Pending: {<Service: server>}
compose.parallel.feed_queue: Starting producer thread for <Service: server>
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=docker-compose', 'com.docker.compose.service=server', 'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=dockercompose', 'com.docker.compose.service=server', 'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
Creating docker-compose_server_1  ...
compose.parallel.feed_queue: Pending: {ServiceName(project='docker-compose', service='server', number=1)}
compose.parallel.feed_queue: Starting producer thread for ServiceName(project='docker-compose', service='server', number=1)
compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('tomcat:8.5.81-jdk8')
compose.cli.verbose_proxy.proxy_callable: docker inspect_image -> {'Architecture': 'amd64',
 'Author': '',
 'Comment': '',
 'Config': {'AttachStderr': False,
            'AttachStdin': False,
            'AttachStdout': False,
            'Cmd': ['catalina.sh', 'run'],
            'Domainname': '',
            'Entrypoint': None,
            'Env': ['PATH=/usr/local/tomcat/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
...
compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('tomcat:8.5.81-jdk8')
compose.cli.verbose_proxy.proxy_callable: docker inspect_image -> {'Architecture': 'amd64',
 'Author': '',
 'Comment': '',
 'Config': {'AttachStderr': False,
            'AttachStdin': False,
            'AttachStdout': False,
            'Cmd': ['catalina.sh', 'run'],
            'Domainname': '',
            'Entrypoint': None,
            'Env': ['PATH=/usr/local/tomcat/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
...
compose.service.build_container_labels: Added config hash: a944a0648125e4286ec39326c9cac6ee1a3abf218fce85262f3b962c690afeea
compose.cli.verbose_proxy.proxy_callable: docker create_host_config <- (links=[], port_bindings={'8080/tcp': ['8888']}, binds=['/home/betanzos/cabolabs-ehrserver/docker-compose/versions:/usr/local/tomcat/versions:rw', '/home/betanzos/cabolabs-ehrserver/docker-compose/opts:/usr/local/tomcat/opts:rw', '/home/betanzos/cabolabs-ehrserver/docker-compose/commits:/usr/local/tomcat/commits:rw', '/home/betanzos/cabolabs-ehrserver/build/libs/cabolabs-ehrserver-2.3.war.original:/usr/local/tomcat/webapps/ROOT.war:rw'], volumes_from=[], privileged=False, network_mode='docker-compose_default', devices=None, device_requests=None, dns=None, dns_opt=None, dns_search=None, restart_policy=None, runtime=None, cap_add=None, cap_drop=None, mem_limit=None, mem_reservation=None, memswap_limit=None, ulimits=None, log_config={'Type': '', 'Config': {}}, extra_hosts=None, read_only=None, pid_mode=None, security_opt=None, ipc_mode=None, cgroup_parent=None, cpu_quota=None, shm_size=None, sysctls=None, pids_limit=None, tmpfs=None, oom_kill_disable=None, oom_score_adj=None, mem_swappiness=None, group_add=None, userns_mode=None, init=None, init_path=None, isolation=None, cpu_count=None, cpu_percent=None, nano_cpus=None, volume_driver=None, cpuset_cpus=None, cpu_shares=None, storage_opt=None, blkio_weight=None, blkio_weight_device=None, device_read_bps=None, device_read_iops=None, device_write_bps=None, device_write_iops=None, mounts=None, device_cgroup_rules=None, cpu_period=None, cpu_rt_period=None, cpu_rt_runtime=None)
compose.cli.verbose_proxy.proxy_callable: docker create_host_config -> {'Binds': ['/home/betanzos/cabolabs-ehrserver/docker-compose/versions:/usr/local/tomcat/versions:rw',
           '/home/betanzos/cabolabs-ehrserver/docker-compose/opts:/usr/local/tomcat/opts:rw',
           '/home/betanzos/cabolabs-ehrserver/docker-compose/commits:/usr/local/tomcat/commits:rw',
           '/home/betanzos/cabolabs-ehrserver/build/libs/cabolabs-ehrserver-2.3.war.original:/usr/local/tomcat/webapps/ROOT.war:rw'],
 'Links': [],
 'LogConfig': {'Config': {}, 'Type': ''},
 'NetworkMode': 'docker-compose_default',
 'PortBindings': {'8080/tcp': [{'HostIp': '', 'HostPort': '8888'}]},
 'VolumesFrom': []}
compose.cli.verbose_proxy.proxy_callable: docker create_container <- (environment=['EHRSERVER_MYSQL_DB_BEHAVIOUR=create-drop', 'EHRSERVER_MYSQL_DB_HOST=db', 'EHRSERVER_MYSQL_DB_PORT=3306', 'EHRSERVER_MYSQL_DB_USERNAME=ehrserver2', 'EHRSERVER_MYSQL_DB_PASSWORD=ehrserver2', 'EHRSERVER_DB_NAME=ehrserver2', 'EHRSERVER_ALLOW_WEB_USER_REGISTER=false', 'EHRSERVER_REST_SECRET=d9507256-e461-4336-a6ec-2f4127954321', 'EHRSERVER_SNQUERY_KEY=22222222-2222-2222-2222-222222222222', 'EHRSERVER_WORKING_FOLDER=/usr/local/tomcat/', 'EHRSERVER_EMAIL_HOST=localhost', 'EHRSERVER_EMAIL_PORT=2525', '[email protected]', 'EHRSERVER_EMAIL_PASS=yourSMTPPassword'], image='tomcat:8.5.81-jdk8', ports=[('8080', 'tcp')], volumes={'/usr/local/tomcat/versions': {}, '/usr/local/tomcat/opts': {}, '/usr/local/tomcat/commits': {}, '/usr/local/tomcat/webapps/ROOT.war': {}}, name='docker-compose_server_1', detach=True, labels={'com.docker.compose.project': 'docker-compose', 'com.docker.compose.service': 'server', 'com.docker.compose.oneoff': 'False', 'com.docker.compose.project.working_dir': '/home/betanzos/cabolabs-ehrserver/docker-compose', 'com.docker.compose.project.config_files': 'docker-compose.yml', 'com.docker.compose.container-number': '1', 'com.docker.compose.version': '1.29.2', 'com.docker.compose.config-hash': 'a944a0648125e4286ec39326c9cac6ee1a3abf218fce85262f3b962c690afeea'}, host_config={'NetworkMode': 'docker-compose_default', 'VolumesFrom': [], 'Binds': ['/home/betanzos/cabolabs-ehrserver/docker-compose/versions:/usr/local/tomcat/versions:rw', '/home/betanzos/cabolabs-ehrserver/docker-compose/opts:/usr/local/tomcat/opts:rw', '/home/betanzos/cabolabs-ehrserver/docker-compose/commits:/usr/local/tomcat/commits:rw', '/home/betanzos/cabolabs-ehrserver/build/libs/cabolabs-ehrserver-2.3.war.original:/usr/local/tomcat/webapps/ROOT.war:rw'], 'PortBindings': {'8080/tcp': [{'HostIp': '', 'HostPort': '8888'}]}, 'Links': [], 'LogConfig': {'Type': '', 'Config': {}}}, networking_config={'EndpointsConfig': {'docker-compose_default': {'Aliases': ['server'], 'IPAMConfig': {}}}})
Creating docker-compose_server_1  ... error
compose.parallel.feed_queue: Pending: set()

ERROR: for docker-compose_server_1  Cannot create container for service server: not a directory
compose.parallel.parallel_execute_iter: Failed: <Service: server>
compose.parallel.feed_queue: Pending: set()

ERROR: for server  Cannot create container for service server: not a directory
ERROR: compose.cli.main.exit_with_metrics: Encountered errors while bringing up the project.

from cabolabs-ehrserver.

ppazos avatar ppazos commented on June 27, 2024

@betanzos here someone mentions it could be because of the relative paths in volumes https://stackoverflow.com/questions/67239635/cannot-create-container-for-service-mysql-not-a-directory and suggests to use $PWD instead

I will try to run it verbose on my machine to see if I get the same output.

from cabolabs-ehrserver.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.