Kubernetes容器化 - SVN
首先需要做个镜像:
FROM debian:buster
MAINTAINER pengbotao "pengbotao@vip.qq.com"
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN sed -i s@/deb.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list && sed -i s@/security.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list && apt-get update
RUN apt-get install -y locales
RUN sed -i 's/^# *\(zh_CN.UTF-8\)/\1/' /etc/locale.gen && locale-gen && echo "export LANG=zh_CN.UTF-8" >> /etc/bash.bashrc
RUN apt-get install -y subversion
RUN apt-get -y clean && rm -rf /var/lib/apt/lists/*
COPY entrypoint.sh /usr/bin/entrypoint.sh
RUN chmod 755 /usr/bin/entrypoint.sh
EXPOSE 3690
CMD ["/usr/bin/entrypoint.sh"]
其中entrypoint.sh
:通过SUBVERSION_REPOS
来配置需要启动的目录,如果目录不存在则创建。
#!/bin/bash
set -e
if [[ -z "${SUBVERSION_REPOS}" ]]; then
SUBVERSION_REPOS=/var/svn/repos
fi
if [[ ! -d ${SUBVERSION_REPOS} ]]; then
mkdir -p ${SUBVERSION_REPOS}
/usr/bin/svnadmin create ${SUBVERSION_REPOS}
fi
/usr/bin/svnserve --daemon --foreground --root=${SUBVERSION_REPOS}
镜像打好之后的部署就是常规流程,创建pv/service等,这里以Deployment的方式来部署SVN,示例如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: svn
labels:
app: svn
spec:
replicas: 1
selector:
matchLabels:
app: svn
template:
metadata:
labels:
app: svn
spec:
containers:
- name: svn
image: svn:1.10-20210713
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3690
name: svn
env:
- name: SUBVERSION_REPOS
value: /data
volumeMounts:
- name: svn-pv
mountPath: /data
volumes:
- name: svn-pv
persistentVolumeClaim:
claimName: svn-pvc
注:需要单独创建pv进行svn目录的持久化处理。
-- EOF --
最后更新于:
2024-08-17 14:44
发表于:
2021-06-18 09:22