Closed mickael-kerjean closed 4 years ago
Hey guys, awesome work that you did! As I couldn't find a docker image for the app, or more instructions on installing on kubernetes, I've works this out and just wanted to share it all instead of keeping everyting for myself:
Dockerfile:
FROM debian:9 MAINTAINER Mickael Kerjean <mickael@kerjean.me> # ref: # - https://afterlogic.com/docs/webmail-lite-8/installation/installing-from-repository RUN apt-get update -y && \ #################################### ## Install apt-get install -y curl git unzip apache2 libapache2-mod-php php-mysql php-curl php-sabre-dav && \ curl -sL https://deb.nodesource.com/setup_12.x | bash - && \ apt-get install -y nodejs && \ cd /var/www/ && \ curl -LO https://github.com/afterlogic/webmail-lite-8/archive/latest.zip && \ unzip latest.zip && \ mv webmail-lite-8-latest webmail && \ rm latest.zip && \ cd webmail && \ curl -LO https://getcomposer.org/download/1.10.7/composer.phar && \ php composer.phar install && \ php composer.phar run pre-config && \ npm install && \ npm install --global gulp-cli && \ gulp styles --themes Default && \ gulp js:min && \ chown -R www-data:www-data /var/www/webmail/data && \ #################################### ## Configuration sed -i 's|DocumentRoot.*|DocumentRoot /var/www/webmail|' /etc/apache2/sites-enabled/000-default.conf && \ #################################### ## Cleanup rm -rf /var/lib/apt/lists/* EXPOSE 80 WORKDIR "/var/www/webmail" VOLUME ["/var/www/webmail/data/settings/", "/var/www/webmail/data/logs/"] ADD run.sh /run.sh ENTRYPOINT ["/run.sh"]
run.sh:
#!/bin/bash set -e source /etc/apache2/envvars apache2 -DFOREGROUND
A prebuilt images is available from here
I also made a deployment on kubernetes which looks like this:
apiVersion: apps/v1 kind: Deployment metadata: labels: app: me-kerjean-mail name: me-kerjean-mail namespace: selfhosted spec: replicas: 1 selector: matchLabels: app: me-kerjean-mail template: metadata: labels: app: me-kerjean-mail spec: containers: - image: machines/webmail-lite name: me-kerjean-mail volumeMounts: - mountPath: /var/www/webmail/data/settings/ name: me-kerjean-mail-volume volumes: - name: me-kerjean-mail-volume hostPath: path: /mnt/me-kerjean-mail --- apiVersion: v1 kind: Service metadata: labels: app: me-kerjean-mail name: me-kerjean-mail namespace: selfhosted spec: ports: - port: 80 protocol: TCP targetPort: 80 selector: app: me-kerjean-mail --- apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: name: me-kerjean-mail namespace: selfhosted annotations: kubernetes.io/ingress.class: "nginx" cert-manager.io/cluster-issuer: "ssl-letsencrypt-prod" ingress.kubernetes.io/ssl-redirect: "true" acme.cert-manager.io/http01-edit-in-place: "true" spec: tls: - hosts: - mail.kerjean.me secretName: me-kerjean-mail rules: - host: mail.kerjean.me http: paths: - backend: serviceName: me-kerjean-mail servicePort: 80
I'm closing as there's no problem :)
:)
Hey guys, awesome work that you did! As I couldn't find a docker image for the app, or more instructions on installing on kubernetes, I've works this out and just wanted to share it all instead of keeping everyting for myself:
Dockerfile:
run.sh:
A prebuilt images is available from here
I also made a deployment on kubernetes which looks like this: