arm mattermost
It's not so hard, here is my working steps for arm64 device.
cd ~/build/mattermost
wget https://raw.githubusercontent.com/mattermost/mattermost/master/server/build/entrypoint.sh
Create a Dockerfile and edit version 9.2.1
to match your need.
FROM ubuntu:jammy # Setting bash as our shell, and enabling pipefail option
SHELL ["/bin/bash", "-o", "pipefail", "-c"] # Some ENV variables
ENV PATH="/mattermost/bin:${PATH}"
ARG PUID=2000
ARG PGID=2000
ARG MM_PACKAGE="https://releases.mattermost.com/9.2.1/mattermost-9.2.1-linux-arm64.tar.gz?src=docker" # # Install needed packages and indirect dependencies
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \
ca-certificates \
curl \
mime-support \
unrtf \
wv \
poppler-utils \
tidy \
tzdata \
&& rm -rf /var/lib/apt/lists/* # Set mattermost group/user and download Mattermost
RUN mkdir -p /mattermost/data /mattermost/plugins /mattermost/client/plugins \
&& addgroup -gid ${PGID} mattermost \
&& adduser -q --disabled-password --uid ${PUID} --gid ${PGID} --gecos "" --home /mattermost mattermost \
&& if [ -n "$MM_PACKAGE" ]; then curl $MM_PACKAGE | tar -xvz ; \
else echo "please set the MM_PACKAGE" ; exit 127 ; fi \
&& chown -R mattermost:mattermost /mattermost /mattermost/data /mattermost/plugins /mattermost/client/plugins # We should refrain from running as privileged user
USER mattermost #Healthcheck to make sure container is ready
HEALTHCHECK --interval=30s --timeout=10s \
CMD curl -f http://localhost:8065/api/v4/system/ping || exit 1 # Configure entrypoint and command
COPY --chown=mattermost:mattermost --chmod=765 entrypoint.sh /
ENTRYPOINT ["/entrypoint.sh"]
WORKDIR /mattermost
CMD ["mattermost"] EXPOSE 8065 8067 8074 8075 # Declare volumes for mount point directories
VOLUME ["/mattermost/data", "/mattermost/logs", "/mattermost/config", "/mattermost/plugins", "/mattermost/client/plugins"]
Build arm64 docker image
docker build . -t mattermost-arm:9.2.1
Mattermost working directory setup
cd /opt/mattermost
mkdir -p mattermost/{config,data,logs,plugins,bleve-indexes}
mkdir -p mattermost/client/plugins
chown 2000:2000 -R .
Create a compose.yaml
file, edit chat.example.com
to your domain name
services:
postgres:
container_name: postgres_mattermost
image: postgres:16-alpine
restart: unless-stopped
volumes:
- ./postgresql/data:/var/lib/postgresql/data
environment:
- POSTGRES_USER=mattermost
- POSTGRES_PASSWORD=mattermost
- POSTGRES_DB=mattermost mattermost:
depends_on:
- postgres
container_name: mattermost
image: mattermost-arm:9.2.1
restart: unless-stopped
ports:
- 127.0.0.1:8065:8065
volumes:
- ./mattermost/config:/mattermost/config
- ./mattermost/data:/mattermost/data
- ./mattermost/logs:/mattermost/logs
- ./mattermost/plugins:/mattermost/plugins
- ./mattermost/client/plugins:/mattermost/client/plugins
- ./mattermost/bleve-indexes:/mattermost/bleve-indexes
environment:
# necessary Mattermost options/variables (see env.example)
- MM_SQLSETTINGS_DRIVERNAME=postgres
- MM_SQLSETTINGS_DATASOURCE=postgres://mattermost:mattermost@postgres:5432/mattermost?sslmode=disable&connect_timeout=10 # necessary for bleve
- MM_BLEVESETTINGS_INDEXDIR=/mattermost/bleve-indexes # additional settings
- MM_SERVICESETTINGS_SITEURL=https://chat.example.com
Spin up container
docker compose up
If it looks okay, Ctrl+C
then run the container in detach mode.
docker compose up -d
Edit: https://github.com/hibobmaster/useful-notes/tree/main/mattermost
You can use hibobmaster/mattermost-arm
if you don't want to build it yourself.
Cheers!
https://docs.docker.com/build/concepts/overview/#install-buildx
https://github.com/docker/buildx?tab=readme-ov-file#manual-download
在构建Mattermost的ARM镜像时遇到“E: Package 'mime-support' has no installation candidate”的错误,通常是因为所使用的基础镜像或者APT源不支持ARM架构,或者该软件包在ARM架构的仓库中不可用。以下是一些可能的解决方案:
更换基础镜像:
- 确保你使用的基础镜像支持ARM架构。你可以尝试使用不同的基础镜像,例如
arm32v7/ubuntu
或arm64v8/ubuntu
,这些镜像专为ARM架构设计。
- 确保你使用的基础镜像支持ARM架构。你可以尝试使用不同的基础镜像,例如
检查APT源:
- 确保你的Dockerfile中的APT源是最新的,并且支持ARM架构。你可以尝试更换为支持ARM的镜像源。
手动下载软件包:
- 如果
mime-support
包在ARM架构的仓库中不可用,你可以尝试手动下载该软件包的ARM版本,并在Docker构建过程中安装。
- 如果
使用多架构支持的基础镜像:
- 考虑使用多架构支持的基础镜像,这样可以确保在不同架构上都能正确构建和运行。
使用替代软件包:
- 如果
mime-support
不是必需的,可以考虑使用替代的软件包或者不安装该软件包。
- 如果
构建ARM64镜像:
- 根据搜索结果中的一个用户分享的步骤,你可以按照以下步骤构建ARM64的Mattermost镜像:
dockerfile
FROM ubuntu:jammy
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
ENV PATH="/mattermost/bin:${PATH}"
ARG PUID=2000
ARG PGID=2000
ARG MM_PACKAGE="https://releases.mattermost.com/9.2.1/mattermost-9.2.1-linux-arm64.tar.gz?src=docker"
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \
ca-certificates \
curl \
unrtf \
wv \
poppler-utils \
tidy \
tzdata \
&& rm -rf /var/lib/apt/lists/*
# 其他Dockerfile指令... - 注意,这里去除了
mime-support
包,因为它可能在ARM架构的仓库中不可用。
- 根据搜索结果中的一个用户分享的步骤,你可以按照以下步骤构建ARM64的Mattermost镜像:
使用现有的ARM镜像:
- 根据搜索结果,有用户分享了一个现有的ARM镜像
hibobmaster/mattermost-arm
,如果你不想自己构建,可以直接使用这个镜像。
- 根据搜索结果,有用户分享了一个现有的ARM镜像
请根据你的具体需求和环境选择合适的解决方案。如果问题仍然存在,可能需要进一步检查你的Docker构建环境和网络配置。
arm mattermost的更多相关文章
- iOS逆向工程之Hopper中的ARM指令
虽然前段时间ARM被日本软银收购了,但是科技是无国界的,所以呢ARM相关知识该学的学.现在看ARM指令集还是倍感亲切的,毕竟大学里开了ARM这门课,并且做了不少的实验,当时自我感觉ARM这门课学的还是 ...
- ARM的栈指令
ARM的指令系统中关于栈指令的内容比较容易引起迷惑,这是因为准确描述一个栈的特点需要两个参数: 栈地址的增长方向:ARM将向高地址增长的栈称为递增栈(Descendent Stack),将向低地址增长 ...
- ARM CPU大小端
ARM CPU大小端: 大端模式:低位字节存在高地址上,高位字节存在低地址上 小端模式:高位字节存在高地址上,低位字节存在低地址上 STM32属于小端模式,简单的说,比如u32 temp=0X1234 ...
- 基于ARM处理器的反汇编器软件简单设计及实现
写在前面 2012年写的毕业设计,仅供参考 反汇编的目的 缺乏某些必要的说明资料的情况下, 想获得某些软件系统的源代码.设计思想及理念, 以便复制, 改造.移植和发展: 从源码上对软件的可靠性和安全性 ...
- EZchip将推全球首款100核64位ARM A-53芯片
EZchip将推全球首款100核64位ARM A-53芯片 2015-02-25 16:32:03 来源:互联网 关键字: 将推 全球 64位 arm EZchip日前表示,将准备开发 ...
- Jetson ARM SeetaFace编译
SeetaFace简介 SeetaFace依赖于OpenCV,对于Tegra on Ubuntu,Nvidia提供libopencv4tegra并且可以使用Cuda加速. 准备工作 1.阅读OpenC ...
- 如何在ARM中创建Express Route
很早之前就想试试Azure的express route,但是一直没有找到合适的机会,正好有个客户需要上express route,所以最近先自己研究研究,防止在做poc的时候耗费更多时间,本次场景我们 ...
- 如何将已部署在ASM的资源迁移到ARM中
使用过Azure的读者都知道,Azure向客户提供了两个管理portal,一个是ASM,一个是ARM,虽然Azure官方没有宣布说淘汰ASM,两个portal可能会在很长的一段时间共存,但是考虑到AR ...
- arm汇编指令
ARM处理器的指令集可以分为跳转指令.数据处理指令.程序状态寄存器(PSR)处理指令.加载/存储指令.协处理器指令和异常产生指令6大指令 一.跳转指令 跳转指令用于实现程序流程的跳转 跳转指令分类 Ⅰ ...
- 生成ARM汇编
使用ndk即可生成arm汇编 1.首先写好hello.c 2.编写makefile #ndk根目录 NDK_ROOT=E:\Android\android-ndk-r10b #编译器根目录 TOOLC ...
随机推荐
- UEFI原理与编程(一)
第一章 UEFI概述(Unified Extensible Firmware Interface 统一的可扩展固件接口) 常见缩写及描述: 缩略词 全名 描述 UEFI Unified Extensi ...
- C# 的显示转换 *.Parse(string) Convert.ToInt32(double value)
// 显式转换 (类型) /// (int)表示使用强制的显示转换,是一种类型转换,C#默认的整形是 int32 , /// 因此使用此方法转成int32 不遵循四舍五入,直截取整数部分 /// (i ...
- ADO.NET 和 ORM的区别
ADO: 1 大量的Sql语句-业务不同,Sql语句不同 2 需要根据不同的场景编写不同Sql语句-灵活去编写Sql语句-提前优化Sql 语句-提供高性能的Sql语句 3 不适合快速开发 4 可编程性 ...
- MySQL 通过 Next-Key Locking 技术(行锁+间隙锁)避免幻读问题
在MySQL中,InnoDB引擎通过Next-Key Locking技术来解决幻读问题.幻读是一种事务并发问题,通常出现在Repeatable Read隔离级别下的范围查询操作中.幻读的现象是,事务在 ...
- 在浏览器输入 URL 回车之后发生了什么(流程图,超详细版)
前言 这个问题已经是老生常谈了,更是经常被作为面试的压轴题出现,网上也有很多文章,但最近闲的无聊,然后就自己做了一篇笔记,感觉比之前理解更透彻了. 这篇笔记是我这两天看了数十篇文章总结出来的,所以相对 ...
- Junit5
JUnit5 安卓build.gradle https://github.com/mannodermaus/android-junit5 Unit 3 或 JUnit4 的向后兼容性 JUnit4 已 ...
- RabbitMQ3.8.16安装延迟队列插件
安装过程 1:RabbitMQ 延迟插件GitHub 2:各版本地址 如我的MQ版本是3.8.16,那么根据提示下载的版本是: ①:移动插件到RabbitMQ的插件目录下,如我的位置是:/usr/li ...
- python项目实战——一元线性回归预测模型
文章目录 1.一元线性回归简介 2.环境准备 3.数据准备 4.可视化数据 5.构建线性回归模型 在数据科学领域,预测分析是一项核心技能.一元线性回归作为预测分析的基石,能够帮助我们理解一个自变量如何 ...
- 使用netsh命令行进行网络管理
显示网络适配器状态 netsh interface show interface 显示各个网络适配器的名称和状态 启用(禁用)网络适配器 本系列命令需要以"以管理员身份运行". 禁 ...
- CentOS 7环境下DM8数据库的安装与配置
一.环境准备 首先,确保你的系统已经安装了CentOS 7,并且具有足够的磁盘空间和内存来支持DM8数据库的运行.此外,你还需要具备管理员权限,以便进行后续的安装和配置操作. 二.下载DM8安装包 访 ...