forked from docker/docker-hoster
Fixed a bug on container stop
This commit is contained in:
parent
a8d70c0fcc
commit
1e96db458d
|
|
@ -5,7 +5,7 @@ RUN mkdir /hoster
|
||||||
WORKDIR /hoster
|
WORKDIR /hoster
|
||||||
ADD hoster.py /hoster/
|
ADD hoster.py /hoster/
|
||||||
|
|
||||||
CMD ["python3", "hoster.py"]
|
CMD ["python3", "-u", "hoster.py"]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
16
README.md
16
README.md
|
|
@ -4,10 +4,10 @@ A simple "etc/hosts" file injection tool to resolve names of local Docker contai
|
||||||
|
|
||||||
hoster is intended to run in a Docker container:
|
hoster is intended to run in a Docker container:
|
||||||
|
|
||||||
docker run -d \
|
docker run -d \
|
||||||
-v /var/run/docker.sock:/tmp/docker.sock \
|
-v /var/run/docker.sock:/tmp/docker.sock \
|
||||||
-v /etc/hosts:/tmp/hosts \
|
-v /etc/hosts:/tmp/hosts \
|
||||||
dvdarias/docker-hoster
|
dvdarias/docker-hoster
|
||||||
|
|
||||||
The `docker.sock` is mounted to allow hoster to listen for Docker events and automatically register containers IP.
|
The `docker.sock` is mounted to allow hoster to listen for Docker events and automatically register containers IP.
|
||||||
|
|
||||||
|
|
@ -19,9 +19,9 @@ Hoster provides by default the entry `<name>.local` for each container. Also you
|
||||||
|
|
||||||
For example, the following container would be available via DNS as `myname.local`, `myserver.com` and `www.myserver.com`:
|
For example, the following container would be available via DNS as `myname.local`, `myserver.com` and `www.myserver.com`:
|
||||||
|
|
||||||
docker run -d \
|
docker run -d \
|
||||||
--name myname \
|
--name myname \
|
||||||
--label hoster.domains="myserver.com www.myserver.com" \
|
--label hoster.domains="myserver.com www.myserver.com" \
|
||||||
mycontainer
|
mycontainer
|
||||||
|
|
||||||
If you need more features like **systemd interation** and **dns forwarding** please check [resolvable](https://hub.docker.com/r/mgood/resolvable/)
|
If you need more features like **systemd interation** and **dns forwarding** please check [resolvable](https://hub.docker.com/r/mgood/resolvable/)
|
||||||
|
|
|
||||||
11
hoster.py
11
hoster.py
|
|
@ -39,17 +39,18 @@ def main():
|
||||||
|
|
||||||
#listen for events to keep the hosts file updated
|
#listen for events to keep the hosts file updated
|
||||||
for e in events:
|
for e in events:
|
||||||
|
status = e["status"];
|
||||||
if e["status"]=="start":
|
if status =="start":
|
||||||
container_id = e["id"]
|
container_id = e["id"]
|
||||||
container = get_container_data(docker, container_id)
|
container = get_container_data(docker, container_id)
|
||||||
hosts[container_id] = container
|
hosts[container_id] = container
|
||||||
update_hosts_file()
|
update_hosts_file()
|
||||||
|
|
||||||
if e["status"]=="stop":
|
if status=="stop" or status=="die" or status=="destroy":
|
||||||
container_id = e["id"]
|
container_id = e["id"]
|
||||||
hosts.pop(container_id)
|
if container_id in hosts:
|
||||||
update_hosts_file()
|
hosts.pop(container_id)
|
||||||
|
update_hosts_file()
|
||||||
|
|
||||||
|
|
||||||
def get_container_data(docker, container_id):
|
def get_container_data(docker, container_id):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue