mirror of
https://github.com/DerTyp7/docker_minecraft_server_auto_starter.git
synced 2025-10-29 12:42:09 +01:00
Fix DockerHandler and NginxHandler bugs
This commit is contained in:
@@ -19,15 +19,13 @@ class DockerHandler:
|
||||
def get_current_container(self):
|
||||
hostname = self.get_current_container_name()
|
||||
if hostname:
|
||||
return self.get_container_by_name(hostname)
|
||||
return self.client.containers.get(hostname)
|
||||
return None
|
||||
|
||||
def get_current_container_name(self):
|
||||
# Get container name from environment variable
|
||||
return os.environ.get('HOSTNAME')
|
||||
|
||||
def get_current_network(self):
|
||||
# Get network of current container
|
||||
current_container = self.get_current_container()
|
||||
if current_container:
|
||||
networks = current_container.attrs['NetworkSettings']['Networks']
|
||||
@@ -43,7 +41,7 @@ class DockerHandler:
|
||||
|
||||
for container in containers:
|
||||
networks = container.attrs['NetworkSettings']['Networks']
|
||||
if self.current_network in networks and networks[self.current_network]['IPAMConfig']['IPv4Address'] == ip:
|
||||
if self.current_network in networks and networks[self.current_network]['IPAddress'] == ip:
|
||||
logging.info(
|
||||
f'Found container {container.name} with ip {ip} in network {self.current_network}')
|
||||
return container
|
||||
@@ -51,13 +49,6 @@ class DockerHandler:
|
||||
f'No docker container found with ip {ip} in network {self.current_network}')
|
||||
return None
|
||||
|
||||
def get_container_by_name(self, name):
|
||||
try:
|
||||
return self.client.containers.get(name)
|
||||
except docker.errors.NotFound:
|
||||
logging.error(f'Container {name} not found')
|
||||
return None
|
||||
|
||||
def is_container_starting(self, container):
|
||||
if container:
|
||||
return container.attrs['State']['Health']['Status'] == 'starting'
|
||||
@@ -87,12 +78,6 @@ class DockerHandler:
|
||||
return None
|
||||
|
||||
def get_ip_by_dns_name(self, dns_name):
|
||||
for container in self.client.containers.list(all=True):
|
||||
networks = container.attrs['NetworkSettings']['Networks']
|
||||
if self.current_network in networks:
|
||||
logging.info(
|
||||
f'Container {container.name} ip: {networks[self.current_network]["IPAddress"]}, dns name: {networks[self.current_network]["Aliases"]}')
|
||||
|
||||
try:
|
||||
containers = self.client.containers.list(
|
||||
all=True, filters={"network": self.current_network})
|
||||
@@ -100,13 +85,13 @@ class DockerHandler:
|
||||
if containers is None:
|
||||
logging.info('No containers found')
|
||||
return None
|
||||
|
||||
for container in containers:
|
||||
networks = container.attrs['NetworkSettings']['Networks']
|
||||
if self.current_network in networks and dns_name in networks[self.current_network]['Aliases']:
|
||||
ip = networks[self.current_network]['IPAddress']
|
||||
logging.info(
|
||||
f'Found container {container.name} with dns name {dns_name} in network {self.current_network}')
|
||||
return networks[self.current_network]['IPAddress']
|
||||
f'Found container {container.name} with dns name {dns_name} with ip {ip} in network {self.current_network}')
|
||||
return ip
|
||||
logging.info(
|
||||
f'No docker container found with dns name {dns_name} in network {self.current_network}')
|
||||
return None
|
||||
|
||||
Reference in New Issue
Block a user