- app cron_job log in console:
- app ddns_cf_py log in console:
- clone repo
- create
.env
file in root dir, and fill in the following variables
NETWORK=cn
APT_REPO_CN=mirrors.aliyun.com
APT_REPO_GLOBAL=deb.debian.org
APT_REPO_FILE=/etc/apt/sources.list.d/debian.sources
PIP_REPO_CN=https://pypi.tuna.tsinghua.edu.cn/simple
PIP_TRUSTED_HOST=pypi.tuna.tsinghua.edu.cn
PIP_REPO_GLOBAL=https://pypi.org/simple
POETRY_REPO_CN=https://pypi.tuna.tsinghua.edu.cn/simple
POETRY_REPO_GLOBAL=https://pypi.org/simple
PYTHON_VERSION=3.10-slim-bookworm
# Cloudflare API configuration
# Replace with your API Token
CF_API_TOKEN="J1Hcxx"
# Replace with your Zone ID
CF_ZONE_ID="af8axx"
# The name of the record to be updated
# DNS_RECORD_NAME="me.code.com"
DNS_RECORD_NAME="me.code.com,hn.code.com"
# Record type, usually A or AAAA
DNS_RECORD_TYPE="A"
- run
poetry install
to install dependencies - run
poetry run python ddns_cf_py/main.py
to run the script - run
poetry run python ddns_cf_py/main.py --help
to see the help message
# define vars
prefix="yemiancheng";name="poetry-bookworm";dockerfile="Dockerfile-debian";python_version="3.10-slim-bookworm";
cn_name=${name};
cn_name=$(echo $cn_name | tr '/' '_' | tr '-' '_');
# im_name=${prefix}/${name}
echo $cn_name;
# build image for development ? do:
docker build --build-arg NETWORK_REGION=cn -t ${prefix}/${name}:cn-dev -f $dockerfile .;
# output python version ? do:
docker run --rm -it --name $cn_name -w /app -v ./:/app/ ${prefix}/${name}:cn-dev
# login bash of container ? do:
docker run --rm -it --name $cn_name -w /app -v ./:/app/ ${prefix}/${name}:cn-dev /bin/bash
# ...
# build image for deployment ? do:
docker build --build-arg NETWORK_REGION=cn --build-arg ENVIRONMENT=deployment -t ${prefix}/${name}:cn-deploy -f $dockerfile .;
# run it for once ? do:
# docker run --rm -it --name ${cn_name}-once -w /app -v ./:/app/ ${prefix}/${name}:cn-deploy python ddns_cf_py/main.py
# run in background and restart on failure ? do:
docker run -d --restart=on-failure --name $cn_name -w /app -v ./:/app/ ${prefix}/${name}:cn-deploy
# login bash of container (development)? do:
docker exec -it $cn_name /bin/bash
# run it for once (development) ? do:
docker exec -it $cn_name python ddns_cf_py/main.py
# get log of container ? do:
# docker logs $cn_name
# stop container and remove it ? do:
# docker stop $cn_name && docker rm $cn_name
# list image size ? do:
# docker image ls | grep -v none | grep -E "(python|alpine|TAG)"
# docker image ls | grep -v none | grep -E "(python|TAG)"
docker image ls | grep -v none | grep -E "(${prefix}/${name}|TAG)"
REPOSITORY TAG IMAGE ID CREATED SIZE
yemiancheng/poetry-bookworm cn-deploy 8ee49bf15c43 11 minutes ago 233MB
yemiancheng/poetry-bookworm cn-dev c894336288a9 11 minutes ago 233MB
yemiancheng/poetry-bookworm cn 90704f2610ca 11 hours ago 127MB
ymc-github ymc.github@gmail.com
MIT