Fixed a bug on container stop
This commit is contained in:
parent
a8d70c0fcc
commit
1e96db458d
|
|
@ -5,7 +5,7 @@ RUN mkdir /hoster
|
|||
WORKDIR /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:
|
||||
|
||||
docker run -d \
|
||||
-v /var/run/docker.sock:/tmp/docker.sock \
|
||||
-v /etc/hosts:/tmp/hosts \
|
||||
dvdarias/docker-hoster
|
||||
docker run -d \
|
||||
-v /var/run/docker.sock:/tmp/docker.sock \
|
||||
-v /etc/hosts:/tmp/hosts \
|
||||
dvdarias/docker-hoster
|
||||
|
||||
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`:
|
||||
|
||||
docker run -d \
|
||||
--name myname \
|
||||
--label hoster.domains="myserver.com www.myserver.com" \
|
||||
mycontainer
|
||||
docker run -d \
|
||||
--name myname \
|
||||
--label hoster.domains="myserver.com www.myserver.com" \
|
||||
mycontainer
|
||||
|
||||
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
|
||||
for e in events:
|
||||
|
||||
if e["status"]=="start":
|
||||
status = e["status"];
|
||||
if status =="start":
|
||||
container_id = e["id"]
|
||||
container = get_container_data(docker, container_id)
|
||||
hosts[container_id] = container
|
||||
update_hosts_file()
|
||||
|
||||
if e["status"]=="stop":
|
||||
if status=="stop" or status=="die" or status=="destroy":
|
||||
container_id = e["id"]
|
||||
hosts.pop(container_id)
|
||||
update_hosts_file()
|
||||
if container_id in hosts:
|
||||
hosts.pop(container_id)
|
||||
update_hosts_file()
|
||||
|
||||
|
||||
def get_container_data(docker, container_id):
|
||||
|
|
|
|||
Loading…
Reference in New Issue