Closed Huiaei closed 2 years ago
请见 #267
没怎么看懂https://github.com/NewFuture/DDNS/issues/267 自己照着dockerfile改了个。不会用git就贴在这了。
Dockerfile
FROM six8/pyinstaller-alpine:alpine-3.6-pyinstaller-v3.4
WORKDIR /build
COPY . .
RUN pyinstaller --onefile --noconfirm --clean ./.build/ddns.spec
FROM alpine:latest
LABEL maintainer="NN708"
ENV ddnsdir /app
WORKDIR ${ddnsdir}
RUN mkdir /backup
COPY --from=0 /build/dist/ddns /backup
RUN echo "*/5 * * * * ${ddnsdir}/ddns -c ${ddnsdir}/config.json" > /etc/crontabs/root \
&& cp -r /backup ${ddnsdir}
RUN touch /entrypoint.sh \
&& chmod 755 /entrypoint.sh \
&& echo "#!/bin/sh">> /entrypoint.sh \
&& echo "cp -r /backup/* ${ddnsdir}">> /entrypoint.sh \
&& echo "${ddnsdir}/ddns">> /entrypoint.sh \
&& echo "crond -f">> /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
docker run
docker run -d -v $PWD/ddns:/app --network host --name DDNS ddns:latest
docker-compose.yml
version: "3"
services:
DDNS:
image: ddns:latest
container_name: DDNS
restart: unless-stopped
tty: true
network_mode: "host"
volumes:
- ./ddns:/app
docker run 和 docker compose 的镜像要改一下,只是在本地构建的,没有上传云端。
两个运行方式都是在命令行当前位置挂载出ddns
文件夹,里面包括运行文件和初始化的配置文件,对应容器内部/app
。
我用的是windows,以我为例。推荐是建立一个文件夹,然后在这文件夹里在此处打开xxx
(shift+右键),然后运行部署。
本来一开始是想直接获取Release的成品,但是好像没有直接获取最新发布的直连,就放弃了。
dockerfile有些地方还能精简下,我个人测试是 docker run 和 docker compose 都能正常部署
Windows Docker 不支持开 IPV6 ,还是乖乖用回 Windows 版好了
Describe the bug [描述]
按照指示运行
docker run -d -v /path/to/config.json:/config.json --network host newfuture/ddns
运行出现
进入容器内部发现
config.conf
是一个文件夹,并且无法移除To Reproduce [复现]
version info [基本信息]
config file [配置文件]
debug output [调试输出]
Additional context