欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > 使用k8s部署RainLoop-Webmail

使用k8s部署RainLoop-Webmail

2024/10/26 4:23:47 来源:https://blog.csdn.net/muguazhi/article/details/142385286  浏览:    关键词:使用k8s部署RainLoop-Webmail

说明

* rainloop最新源码官方下载地址:https://www.rainloop.net/downloads/
* 系统要求:https://www.rainloop.net/docs/system-requirements/
* 安装文档:https://www.rainloop.net/docs/installation/
* 更多详细资料请查看官方文档
* docker镜像构建方法来源github:https://github.com/sauloaldocker/docker-rainloop

在这里插入图片描述

config说明

* config下所有文件均来源于:https://github.com/sauloaldocker/docker-rainloop
* 只有php启动脚本不一致,脚本如下:
* 无用,仅供参考#!/bin/sh
exec 2>&1
#exec /usr/sbin/php5-fpm --fpm-config /etc/php5/fpm/php-fpm.confexec /usr/sbin/php7.4-fpm --fpm-config /etc/php/7.4/fpm/php-fpm.conf

Dockerfile


## Debian 7,对应PHP5
##FROM ahmet2mir/debian:wheezy
##ENV RELEASE wheezy#
## Debian 11,对应PHP7
#FROM debian:bullseye
#ENV RELEASE bullseye
#
#
#ENV DEBIAN_FRONTEND noninteractive
#ENV SHELL /bin/bash
#
## Curl extension
##RUN apt-get update && apt-get install -y nginx php5-fpm php5-curl php5-sqlite php5-json
#
## Update PHP extensions to a compatible version
#RUN apt-get update && apt-get install -y nginx php7.4-fpm php7.4-curl libsqlite3-dev php7.4-json
##
#
## Adding files
#ADD . /
#
#RUN mkdir -p /webapps/logs/rainloop && \
#    mkdir -p /etc/service/ && \
#    mv  /rainloop /webapps && \
#	find /webapps/rainloop -type d -exec chmod 755 {} \; && \
#	find /webapps/rainloop -type f -exec chmod 644 {} \; && \
#	chown -R www-data:www-data /webapps/rainloop && \
#	cp -f /config/nginx.conf /etc/nginx/nginx.conf &&  \
#	cp -f /config/nginx-rainloop.conf /etc/nginx/sites-available/rainloop.conf &&  \
#	ln -s /etc/nginx/sites-available/rainloop.conf /etc/nginx/sites-enabled/rainloop.conf && \
##	sed -i 's/;daemonize = yes/daemonize = no/g' /etc/php5/fpm/php-fpm.conf
#    sed -i 's/;daemonize = yes/daemonize = no/g'  /etc/php/7.4/fpm/php-fpm.conf
#
## "Configure services"
## Based on https://github.com/mingfang/docker-salt
#RUN for dir in /config/service/*;\
#    do echo $dir; chmod +x $dir/run $dir/log/run;\
#    ln -sf $dir /etc/service/; done
#
## Expose services
#EXPOSE 22 80# 使用php5无法打包成功,使用php7可以成功打包但是无法正常启动
# 所以,直接使用原始镜像,再修改里面的rainloop源码,方便自定义二次开发改造
# 实际config下面的文件没有用到,只需要rainloop源码即可# 基础镜像来源:https://github.com/sauloaldocker/docker-rainloop
FROM ahmet2mir/rainloop## 基础镜像中的源码非最新版,这里直接删除原来文件替换为最新版的源码
RUN rm -rf /webapps/rainloop/*## 添加新文件
ADD ./rainloop /webapps/rainloop## 设置权限
RUN find /webapps/rainloop -type d -exec chmod 755 {} \;
RUN find /webapps/rainloop -type f -exec chmod 644 {} \;
RUN chown -R www-data:www-data /webapps/rainloop# Expose services
EXPOSE 22 80

构建镜像

docker build -t rainloop:1001 -f Dockerfile .

Deployment.yaml

## 创建pvc
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: pvc-rainloop-data-volumenamespace: rainloop
spec:accessModes:- ReadWriteOnceresources:requests:storage: 10Gi
---
## 创建Deployment
apiVersion: apps/v1
kind: Deployment
metadata:labels:app: rainloopname: rainloopnamespace: rainloop
spec:progressDeadlineSeconds: 600replicas: 1selector:matchLabels:app: rainloopstrategy:rollingUpdate:maxSurge: 50%maxUnavailable: 50%type: RollingUpdatetemplate:metadata:labels:app: rainloopspec:affinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: project.nodeoperator: Invalues:- rainloopvolumes:- name: timezonehostPath:path: /usr/share/zoneinfo/Asia/Shanghai- name: data-volumepersistentVolumeClaim:claimName: pvc-rainloop-data-volumecontainers:- env:- name: HOSTNAMEvalue: "rainloop"- name: TZvalue: Asia/Shanghaiimage: rainloop:1001imagePullPolicy: IfNotPresentports:- containerPort: 80name: rainloophostname: rainloopterminationMessagePath: /dev/termination-logterminationMessagePolicy: FilevolumeMounts:- name: timezonemountPath: /etc/localtime# 将配置信息存在pvc中,防止重启后原来配置丢失- name: data-volumemountPath: /webapps/rainloop/datadnsPolicy: ClusterFirstrestartPolicy: AlwaysterminationGracePeriodSeconds: 30## 创建service
---
apiVersion: v1
kind: Service
metadata:labels:app: service-rainloopname: service-rainloopnamespace: rainloop
spec:ports:- name: rainloopport: 80targetPort: 80nodePort: 30080selector:app: rainloopsessionAffinity: Nonetype: NodePort

使用

* 先登录管理后台进行配置:ip:port/?admin,例如:http://127.0.0.1:30080/?admin
* 默认账号:admin,默认密码:12345,注意及时登录后台修改默认密码* 普通用户使用登录:ip:port,例如:http://127.0.0.1:30080

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com