RocketChat / Docker.Official.Image

Docker hub - community managed image
291 stars 217 forks source link

we need arm v8 thanks #210

Open cesheji3 opened 4 months ago

lucasjahn commented 16 hours ago

Hi! I actually managed to get that running on ARM with no issues. If you’d like to build it yourself, it’s fairly straightforward.

Go to the version directory you want to build, and edit the Dockerfile slightly. The key change is to ensure that the correct architecture is specified for your build.

FROM debian:bullseye-slim

## Installing Node.js
ENV NODE_ENV production
ENV NODE_VERSION 14.21.3

# Node installation based on official instructions
RUN ARCH="arm64" \ # Change this to 'arm64'

# rest of the dockerfile...

The line RUN ARCH="arm64" is important here.

Then just run a build of the image and there you go.

If you are using Docker Compose, make sure to also use the correct image of mogno for your architecture:

mongodb:
    image: arm64v8/mongo

I already built the image and I will try to make it up-to-date as best as possible: https://hub.docker.com/r/edvschleck/rocketchat-arm64

As a reference my current compose file:

volumes:
  rocketchat_mongodb_data:
    external: true

services:
  rocketchat:
    image: edvschleck/rocketchat-arm64:6.9.2
    restart: always
    labels:
      traefik.enable: "true"
      traefik.http.routers.rocketchat.rule: Host(`${DOMAIN}`)
      traefik.http.routers.rocketchat.tls: "true"
      traefik.http.routers.rocketchat.entrypoints: https
      traefik.http.routers.rocketchat.tls.certresolver: le
    environment:
      MONGO_URL: "${MONGO_URL:-\
        mongodb://${MONGODB_ADVERTISED_HOSTNAME:-mongodb}:${MONGODB_INITIAL_PRIMARY_PORT_NUMBER:-27017}/\
        ${MONGODB_DATABASE:-rocketchat}?replicaSet=${MONGODB_REPLICA_SET_NAME:-rs0}}"
      MONGO_OPLOG_URL: "${MONGO_OPLOG_URL:\
        -mongodb://${MONGODB_ADVERTISED_HOSTNAME:-mongodb}:${MONGODB_INITIAL_PRIMARY_PORT_NUMBER:-27017}/\
        local?replicaSet=${MONGODB_REPLICA_SET_NAME:-rs0}}"
      ROOT_URL: ${ROOT_URL:-http://localhost:${HOST_PORT:-3000}}
      PORT: ${PORT:-3000}
      DEPLOY_METHOD: docker
      DEPLOY_PLATFORM: ${DEPLOY_PLATFORM}
    depends_on:
      - mongodb
    expose:
      - ${PORT:-3000}
    networks:
      - default
    ports:
      - "${BIND_IP:-0.0.0.0}:${HOST_PORT:-3000}:${PORT:-3000}"

  mongodb:
    image: arm64v8/mongo:${MONGODB_VERSION:-5.0}
    restart: always
    command: ["mongod", "--replSet", "rs0", "--bind_ip_all"]
    volumes:
      - rocketchat_mongodb_data:/bitnami/mongodb
    environment:
      MONGODB_REPLICA_SET_MODE: primary
      MONGODB_REPLICA_SET_NAME: ${MONGODB_REPLICA_SET_NAME:-rs0}
      MONGODB_PORT_NUMBER: ${MONGODB_PORT_NUMBER:-27017}
      MONGODB_INITIAL_PRIMARY_HOST: ${MONGODB_INITIAL_PRIMARY_HOST:-mongodb}
      MONGODB_INITIAL_PRIMARY_PORT_NUMBER: ${MONGODB_INITIAL_PRIMARY_PORT_NUMBER:-27017}
      MONGODB_ADVERTISED_HOSTNAME: ${MONGODB_ADVERTISED_HOSTNAME:-mongodb}
      MONGODB_ENABLE_JOURNAL: ${MONGODB_ENABLE_JOURNAL:-true}
      ALLOW_EMPTY_PASSWORD: ${ALLOW_EMPTY_PASSWORD:-yes}
    networks:
      - default