Open jaonoctus opened 1 year ago
I tried to change this line from the Dockerfile and then build it.
- RUN ARCH="x64" \
+ RUN ARCH="arm64" \
$ dpkg --print-architecture
arm64
$ DOCKER_BUILDKIT=1 docker build -t jaonoctus/rocket.chat:v5.2 .
[+] Building 1.9s (10/10) FINISHED => [internal] load build definition from Dockerfile 0.1s
=> => transferring dockerfile: 3.75kB 0.0s
=> [internal] load .dockerignore 0.1s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/debian:buster-slim 1.7s
=> [1/6] FROM docker.io/library/debian:buster-slim@sha256:5dbce817ee72802025a38a388237b0ea576aa164bc90b7102b73aa42fef4d713 0.0s
=> => resolve docker.io/library/debian:buster-slim@sha256:5dbce817ee72802025a38a388237b0ea576aa164bc90b7102b73aa42fef4d713 0.0s
=> CACHED [2/6] RUN ARCH="arm64" && set -eux && apt-get update && apt-get install -y --no-install-recommends ca-certificates curl wget gnupg dirmngr xz-utils 0.0s
=> CACHED [3/6] RUN groupadd -r rocketchat && useradd -r -g rocketchat rocketchat && mkdir -p /app/uploads && chown rocketchat:rocketchat /app/uploads 0.0s
=> CACHED [4/6] WORKDIR /app 0.0s
=> CACHED [5/6] RUN set -eux && apt-get update && apt-get install -y --no-install-recommends fontconfig && aptMark="$(apt-mark showmanual)" && apt-get insta 0.0s
=> CACHED [6/6] WORKDIR /app/bundle 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:9ddac1c4513034fd25aecf2b95148e003811444396589fedd426866de83df598 0.0s
=> => naming to docker.io/jaonoctus/rocket.chat:v5.2
But when I tried to run the service, I got this error:
Error: /app/bundle/programs/server/npm/node_modules/meteor/accounts-password/node_modules/bcrypt/lib/binding/napi-v3/bcrypt_lib.node: cannot open shared object file: No such file or directory
at Object.Module._extensions..node (internal/modules/cjs/loader.js:1144:18)
at Module.load (internal/modules/cjs/loader.js:950:32)
at Module.Mp.load (/app/bundle/programs/server/runtime.js:46:33)
at Function.Module._load (internal/modules/cjs/loader.js:790:12)
at Module.require (internal/modules/cjs/loader.js:974:19)
at require (internal/modules/cjs/helpers.js:101:18)
at Object.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/accounts-password/node_modules/bcrypt/bcrypt.js:6:16)
at Module._compile (internal/modules/cjs/loader.js:1085:14)
at Module.Mp._compile (/app/bundle/programs/server/runtime.js:99:23)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
at Module.load (internal/modules/cjs/loader.js:950:32)
at Module.Mp.load (/app/bundle/programs/server/runtime.js:46:33)
at Function.Module._load (internal/modules/cjs/loader.js:790:12)
at Module.require (internal/modules/cjs/loader.js:974:19)
at require (internal/modules/cjs/helpers.js:101:18)
at npmRequire (/app/bundle/programs/server/npm-require.js:133:12) {
code: 'ERR_DLOPEN_FAILED'
}
@KevLehman Are there any plans to apply the updates that would allow RocketChat (and related containers) to build on the ARM64 platform?
Running this under QEMU emulation is very slow.
I get it work in arm64 device, here is my dockerfile.
Solution got from: https://github.com/RocketChat/server-snap/blob/de72de0a128d73fc7be8dee0a93057add22a10ef
You can also use hibobmaster/rocketchat-arm
if you don't want to build it yourself.
I get it work in arm64 device, here is my dockerfile. Solution got from: https://github.com/RocketChat/server-snap/blob/de72de0a128d73fc7be8dee0a93057add22a10ef You can also use
hibobmaster/rocketchat-arm
if you don't want to build it yourself.
Hi thanks for your share, I tried your docker build on my raspberry pi.
rocketchat-mongodb exited with code 132
rocketchat-mongodb exited with code 132
rocketchat-mongodb exited with code 132
rocketchat-mongodb exited with code 132
rocketchat-mongodb exited with code 132
rocketchat-mongodb exited with code 132
rocketchat-mongodb exited with code 132
rocketchat | /app/bundle/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/promise_server.js:218
rocketchat | throw error;
rocketchat | ^
rocketchat |
rocketchat | MongoServerSelectionError: getaddrinfo ENOTFOUND mongodb
rocketchat | at Timeout._onTimeout (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/sdam/topology.js:292:38)
rocketchat | at listOnTimeout (internal/timers.js:557:17)
rocketchat | at processTimers (internal/timers.js:500:7)
rocketchat | => awaited here:
rocketchat | at Function.Promise.await (/app/bundle/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/promise_server.js:56:12)
rocketchat | at new MongoConnection (packages/mongo/mongo_driver.js:213:11)
rocketchat | at new MongoInternals.RemoteCollectionDriver (packages/mongo/remote_collection_driver.js:9:16)
rocketchat | at Object.<anonymous> (packages/mongo/remote_collection_driver.js:66:18)
rocketchat | at Object.defaultRemoteCollectionDriver (packages/underscore.js:784:19)
rocketchat | at new Collection (packages/mongo/collection.js:127:40)
rocketchat | at AccountsServer._initializeCollection (packages/accounts-base/accounts_common.js:98:20)
rocketchat | at new AccountsCommon (packages/accounts-base/accounts_common.js:46:23)
rocketchat | at new AccountsServer (packages/accounts-base/accounts_server.js:30:5)
rocketchat | at packages/accounts-base/server_main.js:7:12
rocketchat | at module (packages/accounts-base/server_main.js:19:31)
rocketchat | at fileEvaluate (packages/modules-runtime.js:336:7)
rocketchat | at Module.require (packages/modules-runtime.js:238:14)
rocketchat | at require (packages/modules-runtime.js:258:21)
rocketchat | at /app/bundle/programs/server/packages/accounts-base.js:2219:15
rocketchat | at /app/bundle/programs/server/packages/accounts-base.js:2226:3 {
rocketchat | reason: TopologyDescription {
rocketchat | type: 'Single',
rocketchat | servers: Map(1) {
rocketchat | 'mongodb:27017' => ServerDescription {
rocketchat | address: 'mongodb:27017',
rocketchat | type: 'Unknown',
rocketchat | hosts: [],
rocketchat | passives: [],
rocketchat | arbiters: [],
rocketchat | tags: {},
rocketchat | minWireVersion: 0,
rocketchat | maxWireVersion: 0,
rocketchat | roundTripTime: -1,
rocketchat | lastUpdateTime: 2481598,
rocketchat | lastWriteDate: 0,
rocketchat | error: MongoNetworkError: getaddrinfo ENOTFOUND mongodb
rocketchat | at connectionFailureError (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connect.js:387:20)
rocketchat | at Socket.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connect.js:310:22)
rocketchat | at Object.onceWrapper (events.js:520:26)
rocketchat | at Socket.emit (events.js:400:28)
rocketchat | at emitErrorNT (internal/streams/destroy.js:106:8)
rocketchat | at emitErrorCloseNT (internal/streams/destroy.js:74:3)
rocketchat | at processTicksAndRejections (internal/process/task_queues.js:82:21) {
rocketchat | cause: Error: getaddrinfo ENOTFOUND mongodb
rocketchat | at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:71:26) {
rocketchat | errno: -3008,
rocketchat | code: 'ENOTFOUND',
rocketchat | syscall: 'getaddrinfo',
rocketchat | hostname: 'mongodb'
rocketchat | },
rocketchat | [Symbol(errorLabels)]: Set(1) { 'ResetPool' }
rocketchat | },
rocketchat | topologyVersion: null,
rocketchat | setName: null,
rocketchat | setVersion: null,
rocketchat | electionId: null,
rocketchat | logicalSessionTimeoutMinutes: null,
rocketchat | primary: null,
rocketchat | me: null,
rocketchat | '$clusterTime': null
rocketchat | }
rocketchat | },
rocketchat | stale: false,
rocketchat | compatible: true,
rocketchat | heartbeatFrequencyMS: 10000,
rocketchat | localThresholdMS: 15,
rocketchat | setName: 'rs0',
rocketchat | maxElectionId: null,
rocketchat | maxSetVersion: null,
rocketchat | commonWireVersion: 0,
rocketchat | logicalSessionTimeoutMinutes: null
rocketchat | },
rocketchat | code: undefined,
rocketchat | [Symbol(errorLabels)]: Set(0) {}
rocketchat | }
rocketchat-mongodb exited with code 132
rocketchat exited with code 0
rocketchat-mongodb exited with code 132
I get it work in arm64 device, here is my dockerfile. Solution got from: https://github.com/RocketChat/server-snap/blob/de72de0a128d73fc7be8dee0a93057add22a10ef You can also use
hibobmaster/rocketchat-arm
if you don't want to build it yourself.Hi thanks for your share, I tried your docker build on my raspberry pi.
rocketchat-mongodb exited with code 132 rocketchat-mongodb exited with code 132 rocketchat-mongodb exited with code 132 rocketchat-mongodb exited with code 132 rocketchat-mongodb exited with code 132 rocketchat-mongodb exited with code 132 rocketchat-mongodb exited with code 132 rocketchat | /app/bundle/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/promise_server.js:218 rocketchat | throw error; rocketchat | ^ rocketchat | rocketchat | MongoServerSelectionError: getaddrinfo ENOTFOUND mongodb rocketchat | at Timeout._onTimeout (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/sdam/topology.js:292:38) rocketchat | at listOnTimeout (internal/timers.js:557:17) rocketchat | at processTimers (internal/timers.js:500:7) rocketchat | => awaited here: rocketchat | at Function.Promise.await (/app/bundle/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/promise_server.js:56:12) rocketchat | at new MongoConnection (packages/mongo/mongo_driver.js:213:11) rocketchat | at new MongoInternals.RemoteCollectionDriver (packages/mongo/remote_collection_driver.js:9:16) rocketchat | at Object.<anonymous> (packages/mongo/remote_collection_driver.js:66:18) rocketchat | at Object.defaultRemoteCollectionDriver (packages/underscore.js:784:19) rocketchat | at new Collection (packages/mongo/collection.js:127:40) rocketchat | at AccountsServer._initializeCollection (packages/accounts-base/accounts_common.js:98:20) rocketchat | at new AccountsCommon (packages/accounts-base/accounts_common.js:46:23) rocketchat | at new AccountsServer (packages/accounts-base/accounts_server.js:30:5) rocketchat | at packages/accounts-base/server_main.js:7:12 rocketchat | at module (packages/accounts-base/server_main.js:19:31) rocketchat | at fileEvaluate (packages/modules-runtime.js:336:7) rocketchat | at Module.require (packages/modules-runtime.js:238:14) rocketchat | at require (packages/modules-runtime.js:258:21) rocketchat | at /app/bundle/programs/server/packages/accounts-base.js:2219:15 rocketchat | at /app/bundle/programs/server/packages/accounts-base.js:2226:3 { rocketchat | reason: TopologyDescription { rocketchat | type: 'Single', rocketchat | servers: Map(1) { rocketchat | 'mongodb:27017' => ServerDescription { rocketchat | address: 'mongodb:27017', rocketchat | type: 'Unknown', rocketchat | hosts: [], rocketchat | passives: [], rocketchat | arbiters: [], rocketchat | tags: {}, rocketchat | minWireVersion: 0, rocketchat | maxWireVersion: 0, rocketchat | roundTripTime: -1, rocketchat | lastUpdateTime: 2481598, rocketchat | lastWriteDate: 0, rocketchat | error: MongoNetworkError: getaddrinfo ENOTFOUND mongodb rocketchat | at connectionFailureError (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connect.js:387:20) rocketchat | at Socket.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connect.js:310:22) rocketchat | at Object.onceWrapper (events.js:520:26) rocketchat | at Socket.emit (events.js:400:28) rocketchat | at emitErrorNT (internal/streams/destroy.js:106:8) rocketchat | at emitErrorCloseNT (internal/streams/destroy.js:74:3) rocketchat | at processTicksAndRejections (internal/process/task_queues.js:82:21) { rocketchat | cause: Error: getaddrinfo ENOTFOUND mongodb rocketchat | at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:71:26) { rocketchat | errno: -3008, rocketchat | code: 'ENOTFOUND', rocketchat | syscall: 'getaddrinfo', rocketchat | hostname: 'mongodb' rocketchat | }, rocketchat | [Symbol(errorLabels)]: Set(1) { 'ResetPool' } rocketchat | }, rocketchat | topologyVersion: null, rocketchat | setName: null, rocketchat | setVersion: null, rocketchat | electionId: null, rocketchat | logicalSessionTimeoutMinutes: null, rocketchat | primary: null, rocketchat | me: null, rocketchat | '$clusterTime': null rocketchat | } rocketchat | }, rocketchat | stale: false, rocketchat | compatible: true, rocketchat | heartbeatFrequencyMS: 10000, rocketchat | localThresholdMS: 15, rocketchat | setName: 'rs0', rocketchat | maxElectionId: null, rocketchat | maxSetVersion: null, rocketchat | commonWireVersion: 0, rocketchat | logicalSessionTimeoutMinutes: null rocketchat | }, rocketchat | code: undefined, rocketchat | [Symbol(errorLabels)]: Set(0) {} rocketchat | } rocketchat-mongodb exited with code 132 rocketchat exited with code 0 rocketchat-mongodb exited with code 132
The error is related to your database configuration. Here's a example: https://github.com/hibobmaster/useful-notes/blob/main/rocketchat/compose.yaml
thanks, I dropped the MongoDB version to 4.4, and it works
Any plans on publishing arm64 images here?