dockerize
This commit is contained in:
parent
88d02078b3
commit
ff3d3c7a38
20
Dockerfile
Normal file
20
Dockerfile
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
FROM debian:bookworm
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y ca-certificates
|
||||||
|
|
||||||
|
RUN useradd -m dyndns
|
||||||
|
|
||||||
|
COPY entrypoint.sh /home/dyndns/entrypoint.sh
|
||||||
|
RUN chmod +x /home/dyndns/entrypoint.sh
|
||||||
|
|
||||||
|
COPY DynDNS /home/dyndns/DynDNS
|
||||||
|
COPY .env /home/dyndns/.env
|
||||||
|
|
||||||
|
RUN chown -R dyndns:dyndns /home/dyndns
|
||||||
|
RUN chmod +x /home/dyndns/DynDNS
|
||||||
|
|
||||||
|
USER dyndns
|
||||||
|
|
||||||
|
WORKDIR /home/dyndns
|
||||||
|
|
||||||
|
CMD ["./entrypoint.sh"]
|
||||||
6
docker-compose.yml
Normal file
6
docker-compose.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
services:
|
||||||
|
dyndns:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
restart: always
|
||||||
13
entrypoint.sh
Normal file
13
entrypoint.sh
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Function to run the DynDNS update
|
||||||
|
run_dyndns() {
|
||||||
|
echo "Running DynDNS update at $(date)"
|
||||||
|
./DynDNS
|
||||||
|
}
|
||||||
|
|
||||||
|
# Then run every 5 minutes
|
||||||
|
while true; do
|
||||||
|
run_dyndns
|
||||||
|
sleep 300
|
||||||
|
done
|
||||||
@ -7,17 +7,20 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func ReadIp() (string, error) {
|
func ReadIp() (string, error) {
|
||||||
ip, err := _readIpFromIpify()
|
fmt.Printf("Reading IP address ...\n")
|
||||||
if err == nil {
|
ip, errIpify := _readIpFromIpify()
|
||||||
|
if errIpify == nil {
|
||||||
|
fmt.Printf("IP address from ipify: %s\n", ip)
|
||||||
return ip, nil
|
return ip, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
ip, err = _readIpFromIdentMe()
|
ip, errIdentMe := _readIpFromIdentMe()
|
||||||
if err == nil {
|
if errIdentMe == nil {
|
||||||
|
fmt.Printf("IP address from identme: %s\n", ip)
|
||||||
return ip, nil
|
return ip, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return "", fmt.Errorf("error getting IP from all services: %v", err)
|
return "", fmt.Errorf("error getting IP from all services: %v, %v", errIpify, errIdentMe)
|
||||||
}
|
}
|
||||||
|
|
||||||
func _readIpFromIpify() (string, error) {
|
func _readIpFromIpify() (string, error) {
|
||||||
@ -35,6 +38,8 @@ func _readIpFromIpify() (string, error) {
|
|||||||
return "", fmt.Errorf("error reading IP from ipify: %v", err)
|
return "", fmt.Errorf("error reading IP from ipify: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fmt.Printf("IP address from ipify: %s\n", string(ip))
|
||||||
|
|
||||||
return string(ip), nil
|
return string(ip), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -53,5 +58,7 @@ func _readIpFromIdentMe() (string, error) {
|
|||||||
return "", fmt.Errorf("error reading IP from identme: %v", err)
|
return "", fmt.Errorf("error reading IP from identme: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fmt.Printf("IP address from identme: %s\n", string(ip))
|
||||||
|
|
||||||
return string(ip), nil
|
return string(ip), nil
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user