k8s持久化
gocron是很好用的任务管理器,它的配置文件在k8s的docker重启后就被重置,需要将gocron的配置文件持久化。
- 先将gocron启动并配置mysql的链接
- 进入shell环境,将已经配置好gocron复制到k8s的nfs文件夹中
- 再次进入kuboard面板配置gocron的挂载文件夹,并设置为gocron的路径(这个会覆盖gocron的路径,所以持久化了)
备注:使用kubard来管理k8s很方便
gocron dockerfile python3.10环境封装docker包
为什么构建这个镜像
因为需要部署gocron到k8s环境中,让gocron按照时间计划定期执行python脚本,让测试环境和线上环境保持一致
dockerfile
FROM python:3.10
RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
# 安装 gocron
RUN apt-get update && \
apt-get install -y wget && \
wget https://github.com/ouqiang/gocron/releases/download/v1.5.3/gocron-v1.5.3-linux-amd64.tar.gz && \
wget https://github.com/ouqiang/gocron/releases/download/v1.5.3/gocron-node-v1.5.3-linux-amd64.tar.gz && \
tar zxvf gocron-v1.5.3-linux-amd64.tar.gz && \
tar zxvf gocron-node-v1.5.3-linux-amd64.tar.gz && \
mkdir /app && \
mkdir /nodeapp && \
cp -rf gocron-linux-amd64/* /app && \
cp -rf gocron-node-linux-amd64/* /nodeapp && \
rm gocron-v1.5.3-linux-amd64.tar.gz && \
rm gocron-node-v1.5.3-linux-amd64.tar.gz
COPY requirements.txt /app/requirements.txt
EXPOSE 5920/tcp
EXPOSE 5921/tcp
# 设置工作目录
WORKDIR /app
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 容器启动时运行 gocron web 命令
CMD ["/bin/sh", "-c", "/nodeapp/gocron-node -allow-root & /app/gocron web"]
requirements.txt文件放到与这个Dockerfile同级的目录下
生成docker image
# 构建
docker build -t xxx.com/net/mygocron:0.0.10 .
# 推送
docker push xxx.com/net/mygocron:0.0.10
其他
windows下的go封装成services运行 无法运行git命令 报错 Host key verification failed.
因为服务的账户和本机的账户不一样,将C:\Users\spike.ssh复制到C:\Windows\System32\config\systemprofile.ssh就可以了