当前位置: 首页 > news >正文

使用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

http://www.mrgr.cn/news/34292.html

相关文章:

  • 生成式模型api国际选择
  • 阿里云通义大模型团队开源Qwen2.5-Coder:AI编程新纪元
  • UniApp 应用、页面与组件的生命周期详解
  • 物联网通信技术及应用 | 第三章 ZigBee技术概述 | 自用笔记
  • MYSQL隔离性原理——MVCC
  • 元器件封装
  • 本地部署高颜值某抑云音乐播放器Splayer并实现无公网IP远程听歌
  • Profinet转Canopen网关控制高精密伺服的优点
  • 如何开启项目管理学习之旅?免费助你建立系统知识体系
  • AV1 Bitstream Decoding Process Specification--[8]: 语法结构语义-4
  • Java面向对象特性与泛型:深入理解与应用
  • 使用离线模型放在项目中,导致项目代码很大,怎么解决
  • 127.0.0.1和0.0.0.0的区别
  • Windows本地部署开源趣味画风白板手绘工具Excalidraw并实现远程操作
  • Git 命令宝典,这篇就够了~
  • 优可测一键闪测仪:实现冲压端子的快速精准尺寸检测
  • (附源码)基于django的电力工程作业现场物资管理系统的设计与实现-计算机毕设 22067
  • Qt之QFuture理解
  • 统信服务器操作系统ade版【iostat】命令详解
  • 2024年倒计时提醒软件哪个好?倒计时提醒app
  • 寄大件快递用什么物流更便宜,寄20-200公斤大件价格对比
  • C++ 异步编程中:future与promise、packaged_task、async
  • Android对象池的深入理解和使用
  • gif怎么压缩变小一点?6种方法你快速压缩gif
  • 一文读懂HPA弹性扩展自定义指标和缩放策略
  • 【数据结构-栈】力扣844. 比较含退格的字符串