rocketchat / docker.official.image Goto Github PK
View Code? Open in Web Editor NEWDocker hub - community managed image
Docker hub - community managed image
Starting In Release 1.0, Rocket.Chat requires the use of MongoDB REPLICASET to improve performance via Meteor Oplog tailing. (See [BREAK] Require OPLOG/REPLICASET to run Rocket.Chat #14227)
the current docker-compose file leads to
rocketchat_1 | ➔ +---------------------------------------------------------------------------+
rocketchat_1 | ➔ | SERVER ERROR |
rocketchat_1 | ➔ +---------------------------------------------------------------------------+
rocketchat_1 | ➔ | |
rocketchat_1 | ➔ | Rocket.Chat Version: 1.0.3 |
rocketchat_1 | ➔ | NodeJS Version: 8.11.4 - x64 |
rocketchat_1 | ➔ | MongoDB Version: 3.2.21 |
rocketchat_1 | ➔ | MongoDB Engine: wiredTiger |
rocketchat_1 | ➔ | Platform: linux |
rocketchat_1 | ➔ | Process Port: 3000 |
rocketchat_1 | ➔ | Site URL: https://chat.flinker-freddy.de |
rocketchat_1 | ➔ | ReplicaSet OpLog: Disabled |
rocketchat_1 | ➔ | Commit Hash: f19473c626 |
rocketchat_1 | ➔ | Commit Branch: HEAD |
rocketchat_1 | ➔ | |
rocketchat_1 | ➔ | OPLOG / REPLICASET IS REQUIRED TO RUN ROCKET.CHAT, MORE INFORMATION AT: |
rocketchat_1 | ➔ | https://go.rocket.chat/i/oplog-required |
I think there is some change to docker-compose.yml nessesary
Can't find migration version 143
I just pulled a new docker image and I see the age-old recurrent error: Can't find migration version 143; my Mongo version does show it's 143:
{ "_id" : "control", "version" : 143, "locked" : true, "lockedAt" : ISODate("2019-05-09T00:29:47.791Z"), "buildAt" : "2018-06-21T18:28:04.858Z" }
Here's the log:
Exception in callback of async function: Error: [Can't find migration version 143]--
| at Object.Migrations._findIndexByVersion (/app/bundle/programs/server/packages/rocketchat_migrations.js:405:8)
| at Object.Migrations._migrateTo (/app/bundle/programs/server/packages/rocketchat_migrations.js:272:22)
| at Object.Migrations.migrateTo (/app/bundle/programs/server/packages/rocketchat_migrations.js:201:20)
| at meteorInstall.server.startup.migrations.xrun.js (/app/bundle/programs/server/app/app.js:5229:24)
| at fileEvaluate (packages/modules-runtime.js:197:9)
| at require (packages/modules-runtime.js:120:16)
| at /app/bundle/programs/server/app/app.js:10077:1
| at /app/bundle/programs/server/boot.js:303:34
| at Array.forEach (native)
| at Function._.each._.forEach (/app/bundle/programs/server/node_modules/underscore/underscore.js:79:11)
| at /app/bundle/programs/server/boot.js:128:5
| at /app/bundle/programs/server/boot.js:352:5
| at Function.run (/app/bundle/programs/server/profile.js:510:12)
| at /app/bundle/programs/server/boot.js:351:11
Line number 28 in the Docker file has a mistake. Note the (.) dot between rocketchat,
needs to have a (:) colon.
&& chown rocketchat.rocketchat /app/uploads
Docker.Official.Image/Dockerfile
Line 28 in fe70558
Docker deprecated the "MAINTAINER " instruction in favor of "LABEL maintainer ".
See:- https://docs.docker.com/engine/reference/builder/#maintainer-deprecated
I will make a PR for the same
I don't have messages displayed in the chat window when a user changes status (away, offline…), neither when a user joins or leaves the room, and I can't find any setting in the administration relative to this.
Description: Push notifications suddently stopped working, iOS all users/devices (messages sent just not push notifications)
Server Setup Information: official docker image (ubuntu host) with nginx proxy and letsencrypt
Version of Rocket.Chat Server:latest
Operating System: 0.63.2
Deployment Method(snap/docker/tar/etc): docker
Number of Running Instances:1
DB Replicaset Oplog: disabled
Node Version: v8.11.1
mongoDB Version: latest
Steps to Reproduce: Send Test notifcation via Admin console/gui; via mobile/thin client apps on mac/windows/ios.
Expected behavior: Messages sent via channels/direct messages but also push notification banners on mobiles.
Actual behavior:
Messages received fine; no push notifications.
This was working perfectly. Scripted calls working, notification agents working, webhook and channel override working.
I just recently got rocketchat up via Docker image/docker compose. After finally getting proxy sorted out everything was wonderful.
But did docker compose pull and docker compose up today and now while notifications sent, no push notifications are being fired?
It appears that my instance of watchtower has automagically updated my RocketChat instance to the latest version.
Now it wont launch because of a missing database migration.
Will load cache for users
5 records load from users
Will load cache for rocketchat_room
5 records load from rocketchat_room
Will load cache for rocketchat_subscription
14 records load from rocketchat_subscription
Will load cache for rocketchat_settings
720 records load from rocketchat_settings
Updating process.env.MAIL_URL
Will load cache for rocketchat_permissions
80 records load from rocketchat_permissions
Will load cache for rocketchat_roles
11 records load from rocketchat_roles
Starting Email Intercepter...
Warning: connect.session() MemoryStore is not
designed for a production environment, as it will leak
memory, and will not scale past a single process.
LocalStore: store created at
LocalStore: store created at
LocalStore: store created at
Setting default file store to GridFS
Thu, 21 Jun 2018 16:07:28 GMT connect deprecated multipart: use parser (multiparty, busboy, formidable) npm module instead at npm/node_modules/connect/lib/middleware/bodyParser.js:56:20
Thu, 21 Jun 2018 16:07:28 GMT connect deprecated limit: Restrict request size at location of read at npm/node_modules/connect/lib/middleware/multipart.js:86:15
Exception in callback of async function: Error: [Can't find migration version 128]
at Object.Migrations._findIndexByVersion (/app/bundle/programs/server/packages/rocketchat_migrations.js:435:9)
at Object.Migrations._migrateTo (/app/bundle/programs/server/packages/rocketchat_migrations.js:300:25)
at Object.Migrations.migrateTo (/app/bundle/programs/server/packages/rocketchat_migrations.js:227:23)
at xrun.js (/app/bundle/programs/server/app/app.js:7213:25)
at fileEvaluate (packages/modules-runtime.js:343:9)
at require (packages/modules-runtime.js:238:16)
at /app/bundle/programs/server/app/app.js:12922:1
at /app/bundle/programs/server/boot.js:411:36
at Array.forEach (<anonymous>:null:null)
at /app/bundle/programs/server/boot.js:220:19
at /app/bundle/programs/server/boot.js:471:5
at Function.run (/app/bundle/programs/server/profile.js:510:12)
at /app/bundle/programs/server/boot.js:470:11
Can I run the migration manually somehow, and how do I avoid this happening in the future?
My docker-compose.yml
for context:
version: '2'
services:
rocketchat:
image: rocketchat/rocket.chat:latest
restart: unless-stopped
volumes:
- ./uploads:/app/uploads
environment:
- PORT=3000
- ROOT_URL=<snip>
- MONGO_URL=mongodb://mongo:27017/rocketchat
- MONGO_OPLOG_URL=mongodb://mongo:27017/local
depends_on:
- mongo
ports:
- 3000:3000
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.backend=rocketchat"
- "traefik.frontend.rule=Host:<snip>"
- "traefik.docker.network=reverseproxy_default"
mongo:
image: mongo:3.2
restart: unless-stopped
volumes:
- ./data/db:/data/db
command: mongod --smallfiles --oplogSize 128 --replSet rs0 --storageEngine=mmapv1
labels:
- "traefik.enable=false"
networks:
- proxy
networks:
proxy:
external:
name: reverseproxy_default
I dont know if im just so bad at this but here's my issue:
Im trying to build my own image of RocketChat so that i can push updates to it and re create images for Production
In this case im using this rocketchat repository that I can edit and then build from it, but it doesnt work.
Here is the repo im using: https://github.com/RocketChat/Rocket.Chat
Now i want to build with Dockerfile which is like this:
FROM rocketchat/base:8
ADD . /app
MAINTAINER [email protected]
RUN set -x \
&& cd app/bundle/programs/server \
&& npm install \
&& npm cache clear --force \
&& chown -R rocketchat:rocketchat /app
VOLUME /app/uploads
USER rocketchat
WORKDIR /app/bundle
ENV DEPLOY_METHOD=docker \
MONGO_URL=mongodb://mongo-test:27017/rocket \
HOME=/tmp \
PORT=3000 \
ROOT_URL=http://localhost:3000 \
Accounts_AvatarStorePath=/app/uploads
EXPOSE 3000
CMD ["node", "main.js"]
And the problem is that i dont know where its building from since i modify the Dockerfile which is located in ".docker" and i build with:
docker build -t rocketchat:custom -f .docker/Dockerfile .
the output is always the same:
Step 1/10 : FROM rocketchat/base:8
---> 1dc2a21e1890
Step 2/10 : ADD . /app
---> b71e563c6065
Step 3/10 : MAINTAINER [email protected]
---> Running in bca3ee37f262
Removing intermediate container bca3ee37f262
---> 4c53e4e67565
Step 4/10 : RUN set -x && cd app/bundle/programs/server && npm install && npm cache clear --force && chown -R rocketchat:rocketchat /app
---> Running in efff8d296304
+ cd app/bundle/programs/server
/bin/sh: 1: cd: can't cd to app/bundle/programs/server
The command '/bin/sh -c set -x && cd app/bundle/programs/server && npm install && npm cache clear --force && chown -R rocketchat:rocketchat /app' returned a non-zero code: 2
While using ls
in the Dockerfile, I see that there is no bundle directory so it cannot cd
into it, but i dont know why its not building it.
Thanks in advance!
Hi, I'm making a React Native client for Rocket.Chat. I deployed the docker image to an aws ec2 server, following the tutorial .
The web client is now up and running. I can connect to it with the official Mac OS client too. But I'm not sure what is the right URL to connect to with Meteor client, tried
ws:mydomain.com/websocket
but it didn't work.
Update: It seems
Is the right direction, but I'm getting: socketrocket in debug mode allowing connection to any root cert
error
HI, first, congratulations for this great proyect.
We have implemented time ago some rocketchat docker stack, with
database image: mongo:3.0
rocketchat image: rocket.chat:latest
https layer: remynoulin/stud
obviously if we comment the ACL in exim4 that reject a mail with an IP in HELO name, this mail is sended OK.
We saw changes in the smtp sections are done little time ago, and keeping in mind that we had worked with this rocketchat image time ago, with our exim smtp server, we tried to dowgrade the rocket chat docker version to rocket.chat:0.50.1 in wich we saw difference in the smtp section (have not "ignore TLS" and "SMTP pool" options) but the mail arrive with the same "an IP in HELO Name".
We think that it can be a missconfiguration in our docker, but we cannot find the solution for this problem.
We launch the dockers in this order
docker run --restart=always --name example-rc-db -v /datos/docker/example/rc-db:/data/db -d mongo:3.0 --smallfiles
docker run --restart=always --name example-rc-chat --link example-rc-db:db -d rocket.chat:0.50.1
docker run --restart=always --name example-rc-stud -p 5443:443 --link example-rc-chat:app -v /datos/docker/example/rc-stud/certs:/opt/certs -d remynoulin/stud
as you can see, we are not exposing the port 3000 of rocketchat, we are only forwarding the 443 port of stud (HTTPS)
The rocketchat is working fine, the HTTPS certificate too, and its connect OK with mongodb, the only problem that we have is that when rocketchat send a mail, include ([127.0.0.1]) in the header, and we dont find any configuration for this.
We'll like to know if somebody more had for this problem and can solve it
THanks a lot
Best regards
Ramiro Polverini - Bantics Cooperativa
This is #50 , which was closed w/o a fix.
Trying to use RocketChat which uses Mongo 4.0. I've used MySQL for over 20 years and it's amazing. People also love Postgress. Redis is rock solid. I've used Mongo in production; it's total crap.
Exception in setInterval callback: { MongoError: not master and slaveOk=false
hi, i cant start the containers that already has working, here is the logs.
thanks.
docker-compose up -d && docker-compose logs -f
Creating rocket_db_1 ... done
Creating rocket_rocket_1 ... done
Attaching to rocket_rocket_1, rocket_db_1
db_1 | 2019-03-26T23:32:48.407+0000 I CONTROL [initandlisten] MongoDB starting : pid=1 port=27017 dbpath=/data/db 64-bit host=2a49f7d6d3e1
db_1 | 2019-03-26T23:32:48.407+0000 I CONTROL [initandlisten] db version v3.0.15
db_1 | 2019-03-26T23:32:48.407+0000 I CONTROL [initandlisten] git version: b8ff507269c382bc100fc52f75f48d54cd42ec3b
db_1 | 2019-03-26T23:32:48.407+0000 I CONTROL [initandlisten] build info: Linux ip-10-166-66-3 3.2.0-4-amd64 #1 SMP Debian 3.2.46-1 x86_64 BOOST_LIB_VERSION=1_49
db_1 | 2019-03-26T23:32:48.407+0000 I CONTROL [initandlisten] allocator: tcmalloc
db_1 | 2019-03-26T23:32:48.407+0000 I CONTROL [initandlisten] options: { storage: { mmapv1: { smallFiles: true } } }
db_1 | 2019-03-26T23:32:48.410+0000 W - [initandlisten] Detected unclean shutdown - /data/db/mongod.lock is not empty.
db_1 | 2019-03-26T23:32:48.423+0000 I JOURNAL [initandlisten] journal dir=/data/db/journal
db_1 | 2019-03-26T23:32:48.423+0000 I JOURNAL [initandlisten] recover begin
db_1 | 2019-03-26T23:32:48.424+0000 I JOURNAL [initandlisten] info no lsn file in journal/ directory
db_1 | 2019-03-26T23:32:48.424+0000 I JOURNAL [initandlisten] recover lsn: 0
db_1 | 2019-03-26T23:32:48.424+0000 I JOURNAL [initandlisten] recover /data/db/journal/j._0
db_1 | 2019-03-26T23:32:48.424+0000 I JOURNAL [initandlisten] recover applying initial journal section with sequence number 90
db_1 | 2019-03-26T23:32:48.433+0000 I JOURNAL [initandlisten] recover cleaning up
db_1 | 2019-03-26T23:32:48.433+0000 I JOURNAL [initandlisten] removeJournalFiles
db_1 | 2019-03-26T23:32:48.451+0000 I JOURNAL [initandlisten] recover done
db_1 | 2019-03-26T23:32:48.452+0000 I JOURNAL [initandlisten] preallocating a journal file /data/db/journal/prealloc.0
db_1 | 2019-03-26T23:32:49.043+0000 I JOURNAL [durability] Durability thread started
db_1 | 2019-03-26T23:32:49.044+0000 I JOURNAL [journal writer] Journal writer thread started
db_1 | 2019-03-26T23:32:49.055+0000 I NETWORK [initandlisten] waiting for connections on port 27017
db_1 | 2019-03-26T23:32:50.088+0000 I NETWORK [initandlisten] connection accepted from 172.17.0.6:54164 #1 (1 connection now open)
db_1 | 2019-03-26T23:32:50.251+0000 I NETWORK [initandlisten] connection accepted from 172.17.0.6:54166 #2 (2 connections now open)
db_1 | 2019-03-26T23:32:50.910+0000 I NETWORK [initandlisten] connection accepted from 172.17.0.6:54172 #3 (3 connections now open)
db_1 | 2019-03-26T23:32:52.220+0000 I NETWORK [initandlisten] connection accepted from 172.17.0.6:54176 #4 (4 connections now open)
db_1 | 2019-03-26T23:32:52.241+0000 I NETWORK [initandlisten] connection accepted from 172.17.0.6:54178 #5 (5 connections now open)
rocket_1 | Updating process.env.MAIL_URL
rocket_1 | LocalStore: store created at
rocket_1 | LocalStore: store created at
rocket_1 | LocalStore: store created at
rocket_1 | Starting Email Intercepter...
rocket_1 | Setting default file store to GridFS
rocket_1 | Warning: connect.session() MemoryStore is not
rocket_1 | designed for a production environment, as it will leak
rocket_1 | memory, and will not scale past a single process.
rocket_1 | {"line":"121","file":"migrations.js","message":"Migrations: Not migrating, already at version 137","time":{"$date":1553643182655},"level":"info"}
rocket_1 | ufs: temp directory created at "/tmp/ufs"
rocket_1 | Updating process.env.MAIL_URL
db_1 | 2019-03-26T23:33:03.413+0000 I INDEX [conn3] build index on: meteor.rocketchat_cron_history properties: { v: 1, unique: true, key: { intendedAt: 1, name: 1 }, name: "intendedAt_1_name_1", ns: "meteor.rocketchat_cron_history" }
db_1 | 2019-03-26T23:33:03.413+0000 I INDEX [conn3] building index using bulk method
rocket_1 | Exception in callback of async function: { MongoError: exception: E11000 duplicate key error index: meteor.rocketchat_cron_history.$intendedAt_1_name_1 dup key: { : new Date(1553616000000), : "Generate download files for user data" }
rocket_1 | at /app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/connection/pool.js:581:63
rocket_1 | at authenticateStragglers (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/connection/pool.js:504:16)
rocket_1 | at Connection.messageHandler (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/connection/pool.js:540:5)
rocket_1 | at emitMessageHandler (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/connection/connection.js:310:10)
rocket_1 | at Socket. (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/connection/connection.js:453:17)
rocket_1 | at emitOne (events.js:116:13)
rocket_1 | at Socket.emit (events.js:211:7)
rocket_1 | at addChunk (_stream_readable.js:263:12)
rocket_1 | at readableAddChunk (_stream_readable.js:250:11)
rocket_1 | at Socket.Readable.push (_stream_readable.js:208:10)
rocket_1 | at TCP.onread (net.js:597:20)
rocket_1 | createdCollectionAutomatically: false,
rocket_1 | numIndexesBefore: 1,
rocket_1 | errmsg: 'exception: E11000 duplicate key error index: meteor.rocketchat_cron_history.$intendedAt_1_name_1 dup key: { : new Date(1553616000000), : "Generate download files for user data" }',
rocket_1 | code: 11000,
rocket_1 | ok: 0,
rocket_1 | name: 'MongoError',
rocket_1 | [Symbol(mongoErrorContextSymbol)]: {} }
DockerHub uses this one now:
https://github.com/RocketChat/Rocket.Chat/blob/develop/Dockerfile
Maybe you can state this in the Readme.
Hi,
With the "fix" mentioned in issue #48, I can successfully build rocket.chat image on arm64 architecture. But when trying to run the image, I got the following exception caused by sharp.node.
$ docker run --name rocketchat -p 80:3000 --env ROOT_URL=http://localhost --link db:db rocket.chat
Note: you are using a pure-JavaScript implementation of bcrypt.
While this implementation will work correctly, it is known to be
approximately three times slower than the native implementation.
In order to use the native implementation instead, run
meteor npm install --save bcrypt
in the root directory of your application.
Will load cache for users
0 records load from users
Will load cache for rocketchat_room
0 records load from rocketchat_room
Will load cache for rocketchat_subscription
0 records load from rocketchat_subscription
Will load cache for rocketchat_settings
373 records load from rocketchat_settings
Updating process.env.MAIL_URL
Starting Email Intercepter...
Will load cache for rocketchat_permissions
0 records load from rocketchat_permissions
Will load cache for rocketchat_roles
0 records load from rocketchat_roles
Exception in callback of async function: Error: /app/bundle/programs/server/npm/node_modules/sharp/build/Release/sharp.node: cannot open shared object file: No such file or directory
at Object.Module._extensions..node (module.js:681:18)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/app/bundle/programs/server/npm/node_modules/sharp/lib/constructor.js:10:15)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/app/bundle/programs/server/npm/node_modules/sharp/lib/index.js:3:15)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at npmRequire (/app/bundle/programs/server/npm-require.js:133:10)
at Module.useNode (packages/modules-runtime.js:697:18)
at fileEvaluate (packages/modules-runtime.js:342:20)
at require (packages/modules-runtime.js:238:16)
at FileUpload.js (packages/rocketchat:file-upload/server/lib/FileUpload.js:1:351)
at fileEvaluate (packages/modules-runtime.js:343:9)
at require (packages/modules-runtime.js:238:16)
at /app/bundle/programs/server/packages/rocketchat_file-upload.js:2252:1
at /app/bundle/programs/server/packages/rocketchat_file-upload.js:2266:3
at /app/bundle/programs/server/boot.js:411:36
at Array.forEach (<anonymous>)
at /app/bundle/programs/server/boot.js:220:19
at /app/bundle/programs/server/boot.js:471:5
at Function.run (/app/bundle/programs/server/profile.js:510:12)
at /app/bundle/programs/server/boot.js:470:11
The cause is that this sharp.node in meteor bundle is an x86-64 executable file.
$ file bundle/programs/server/npm/node_modules/sharp/build/Release/sharp.node
bundle/programs/server/npm/node_modules/sharp/build/Release/sharp.node: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=f0b3b64efe073fbfdd69b6a2778eb95102b58431, stripped
It seems that we should build this sharp package from source rather than always having a x86-64 binary in there? Thanks.
Shawn
Hi,
I'm trying to do an arm64 native build of rocket.chat docker image. The problem I'm facing is that there is a prebuilt Fibers package for x64, but it has to be built from source on arm64. However, the build fails with -slim node image from which some tools like python are missing.
[email protected] install /app/bundle/programs/server/node_modules/fibers
node build.js || nodejs build.js
linux-x64-57
exists; testing
Binary is fine; exiting
[email protected] install /app/bundle/programs/server/node_modules/fibers
node build.js || nodejs build.js
gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
gyp ERR! stack at PythonFinder.failNoPython (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:483:19)
gyp ERR! stack at PythonFinder. (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:397:16)
gyp ERR! stack at F (/usr/local/lib/node_modules/npm/node_modules/which/which.js:68:16)
gyp ERR! stack at E (/usr/local/lib/node_modules/npm/node_modules/which/which.js:80:29)
gyp ERR! stack at /usr/local/lib/node_modules/npm/node_modules/which/which.js:89:16
gyp ERR! stack at /usr/local/lib/node_modules/npm/node_modules/which/node_modules/isexe/index.js:42:5
gyp ERR! stack at /usr/local/lib/node_modules/npm/node_modules/which/node_modules/isexe/mode.js:8:5
gyp ERR! stack at FSReqWrap.oncomplete (fs.js:152:21)
gyp ERR! System Linux 4.17.0-rc4-00005-g8f0d93ff4870
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--release"
gyp ERR! cwd /app/bundle/programs/server/node_modules/fibers
gyp ERR! node -v v8.9.4
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
node-gyp exited with code: 1
Please make sure you are using a supported platform and node version. If you
would like to compile fibers on this machine please make sure you have setup your
build environment--
Windows + OS X instructions here: https://github.com/nodejs/node-gyp
Ubuntu users please run:sudo apt-get install g++ build-essential
Alpine users please run:sudo apk add python make g++
It can be successfully built with changing base image from node:8.9-slim to node:8.9 in Dockerfile.
[email protected] install /app/bundle/programs/server/node_modules/fibers
node build.js || nodejs build.js
make: Entering directory '/app/bundle/programs/server/node_modules/fibers/build'
CXX(target) Release/obj.target/fibers/src/fibers.o
CXX(target) Release/obj.target/fibers/src/coroutine.o
CC(target) Release/obj.target/fibers/src/libcoro/coro.o
SOLINK_MODULE(target) Release/obj.target/fibers.node
COPY Release/fibers.node
make: Leaving directory '/app/bundle/programs/server/node_modules/fibers/build'
Installed in/app/bundle/programs/server/node_modules/fibers/bin/linux-arm64-57/fibers.node
But is it the correct fix? Thanks.
Shawn
Title says it all. I was checking docker logs when I saw that all messages on the rocketchat instance are logged to stdout in mail format. To be specific, messages are something like this:
rocketchat_1 | ====== BEGIN MAIL #251 ======
rocketchat_1 | (Mail not sent; to enable sending, set the MAIL_URL environment variable.)
rocketchat_1 | Content-Type: text/html; charset=utf-8
rocketchat_1 | To: [redacted for issue]
rocketchat_1 | Subject: [chat.myserver.com] You have been direct messaged by [redacted for issue]
...
[some HTML body with the text of the message in it]
...
rocketchat_1 | ====== END MAIL #251 ======
Is there any way to stop this from happening?
Hi there,
i'm trying to run RocketChat as a docker container with reverse proxy in a sub folder (https://001docker2t/rocketchat).
My problem is that file upload is using the wrong url (https://001docker2t/ufs/...) and stay at 0%.
Docker calls:
docker run --name rocketchatdb --restart unless-stopped -d -v /var/docker/rocketchat/db:/data/db mongo:3.0 --smallfiles
docker run --name rocketchat --restart unless-stopped -p 172.17.0.1:3000:3000 --link rocketchatdb --env ROOT_URL=https://001docker2t/rocketchat/ --env MONGO_URL=mongodb://rocketchatdb:27017/meteor -d rocket.chat
As in the documentation for sub folders (https://rocket.chat/docs/installation/manual-installation/running-in-a-sub-folder) i set the ROOT_URL to https://001docker2t/rocketchat/. In the application i set under Admin > General only the domain.
Do i have a wrong configuration or is there something wrong with uploads using subfolders?
Versions:
NODE_VERSION 4.8.1
YARN_VERSION 0.21.3
RC_VERSION 0.54.0
The dockerfile use tar which is broken in docker(?)
docker/hub-feedback#727
tar: bundle/programs/server/npm/node_modules/express/node_modules/.bin: Directory renamed before its status could be extracted
tar: bundle/programs/server/npm/node_modules/express/node_modules: Directory renamed before its status could be extracted
tar: bundle/programs/server/npm/node_modules/express: Directory renamed before its status could be extracted
tar: Exiting with failure status due to previous errors
The command '/bin/sh -c curl -fSL "https://releases.rocket.chat/${RC_VERSION}/download" -o rocket.chat.tgz && curl -fSL "https://releases.rocket.chat/${RC_VERSION}/asc" -o rocket.chat.tgz.asc && gpg --batch --verify rocket.chat.tgz.asc rocket.chat.tgz && tar zxvf rocket.chat.tgz && rm rocket.chat.tgz rocket.chat.tgz.asc && cd bundle/programs/server && npm install' returned a non-zero code: 2
I'm not sure who to ping here. Pretty much from the start this has been a community maintained repo. Because of that its been a bit hands off and just let things run.
We'd like to get a bit more hands on and assure this image gets the same sort of quality as the one in our own repo.
So we'd really like to understand how exactly the pieces here fit together and how we can improve. I don't know if here is the best way or if via email.
If email is better please shoot me an email aaron.ogle [@] our company domain :)
Can we keep this in sync more with the current version in the rocket.chat repo?
Looks like we're at least one version behind. I've seen other docker images have a dev label.
Docker.Official.Image/Dockerfile
Line 59 in bd53dae
Accounts_AvatarStorePath is not used at all.
Try running the commands listed on the read me but getting the error
Error: image library/rocket.chat:latest not found
commands run
docker run --name db -d mongo mongod --smallfiles
docker run --name rocketchat --env ROOT_URL=http://robrotheram.com --link db rocket.chat
Tried replacing it with
docker run --name rocketchat --env ROOT_URL=http://robrotheram.com --link db rocketchat/rocket.chat
to pull from the docker repository but then getting the error
Status: Downloaded newer image for rocketchat/rocket.chat:latest
=> Starting meteor app on port:80
/built_app/programs/server/node_modules/fibers/future.js:245
throw(ex);
^
Error: MONGO_URL must be set in environment
at Object.<anonymous> (packages/mongo/remote_collection_driver.js:36:1)
at Object.defaultRemoteCollectionDriver (packages/underscore/underscore.js:750:1)
at new Mongo.Collection (packages/mongo/collection.js:98:1)
at packages/accounts-base/accounts_common.js:141:1
at /built_app/programs/server/packages/accounts-base.js:243:4
at /built_app/programs/server/packages/accounts-base.js:1659:3
at /built_app/programs/server/boot.js:222:10
at Array.forEach (native)
at Function._.each._.forEach (/built_app/programs/server/node_modules/underscore/underscore.js:79:11)
at /built_app/programs/server/boot.js:117:5
Hi guys!
note:
I'm trying to make a RocketChat instance work in parallel with other services (i plan to have rocket+nextcloud on a server) with letsencrypt-nginx-proxy-companion. I've already managed to use this tool on another project to run multiple Wordpress/mysql installs on the same server.
Here are the two files i use
version: '3.3'
services:
db:
image: mongo
volumes:
- ./datatest/runtime/db:/data/db
- ./datatest/dump:/dump
command: mongod --smallfiles
rocketchat:
image: rocketchat/rocket.chat:latest
environment:
MONGO_URL: mongodb://db:27017/rocketchat
ROOT_URL: http://sub.mydomain.fr
Accounts_UseDNSDomainCheck: "true"
MAIL_URL: smtp://[email protected]
Accounts_UseDNSDomainCheck: "false"
VIRTUAL_HOST: sub.mydomain.fr
LETSENCRYPT_HOST: sub.mydomain.fr
LETSENCRYPT_EMAIL: [email protected]
links:
- db:db
ports:
- 3000:3000
restart: always
hubot:
# doesnt matter for now
networks:
default:
external:
name: mywebproxy
version: '3.3'
services:
nginx-web:
image: nginx
labels:
com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true"
container_name: ${NGINX_WEB}
restart: always
ports:
- "${IP}:80:80"
- "${IP}:443:443"
volumes:
- ${NGINX_FILES_PATH}/conf.d:/etc/nginx/conf.d
- ${NGINX_FILES_PATH}/vhost.d:/etc/nginx/vhost.d
- ${NGINX_FILES_PATH}/html:/usr/share/nginx/html
- ${NGINX_FILES_PATH}/certs:/etc/nginx/certs:ro
- ${NGINX_FILES_PATH}/htpasswd:/etc/nginx/htpasswd:ro
nginx-gen:
image: jwilder/docker-gen
command: -notify-sighup ${NGINX_WEB} -watch -wait 5s:30s /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf
container_name: ${DOCKER_GEN}
restart: always
volumes:
- ${NGINX_FILES_PATH}/conf.d:/etc/nginx/conf.d
- ${NGINX_FILES_PATH}/vhost.d:/etc/nginx/vhost.d
- ${NGINX_FILES_PATH}/html:/usr/share/nginx/html
- ${NGINX_FILES_PATH}/certs:/etc/nginx/certs:ro
- ${NGINX_FILES_PATH}/htpasswd:/etc/nginx/htpasswd:ro
- /var/run/docker.sock:/tmp/docker.sock:ro
- ./nginx.tmpl:/etc/docker-gen/templates/nginx.tmpl:ro
nginx-letsencrypt:
image: jrcs/letsencrypt-nginx-proxy-companion
container_name: ${LETS_ENCRYPT}
restart: always
volumes:
- ${NGINX_FILES_PATH}/conf.d:/etc/nginx/conf.d
- ${NGINX_FILES_PATH}/vhost.d:/etc/nginx/vhost.d
- ${NGINX_FILES_PATH}/html:/usr/share/nginx/html
- ${NGINX_FILES_PATH}/certs:/etc/nginx/certs:rw
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
NGINX_DOCKER_GEN_CONTAINER: ${DOCKER_GEN}
NGINX_PROXY_CONTAINER: ${NGINX_WEB}
networks:
default:
external:
name:mywebproxy
Any idea? I think that could be a great thing to have a working way of doing this for everyone. It would facilitate a lot for people wanting to run RocketChat along other services (a website/a cloud) that run via Docker.
I run rocketchat docker container, follow the README and running now.
I am not sure where can I know something like who login, logout event log.
Can it be specify in the command line?
Thanks.
I just noticed that our image is not complete, it misses this library. Would you like me to PR to add it? should I add imagemagick or graphicsmagick ?
When the new version (0.71.1) will be available in Docker Hub?
We should make an effort to use MongoDB on ReplicaSET mode whenever possible, and configure the respective MONGO_OPLOG_URL. This has a MASSIVE impact on performance. Rocket.Char does not scale otherwise.
I have got Rocket.Chat up and running on Plesk Onyx (ubuntu 16.04.3) using the docker system by running these commands.
docker run --name db -d mongo:3.0 --smallfiles
docker run --name rocketchat --link db -d rocket.chat
Everything is working accept the Avatar Resize which is giving and error:
'The image resize will not work because we can not detect ImageMagick or GraphicsMagick installed on your server.'
I have both installed on the server but for some reason it's not being detected by Rocket.Chat.
Am I missing something?
The other issue I get is when I go into the docker settings I have to change Accounts_AvatarStorePath to ACCOUNTS_AVATARSOREPATH and remove Accounts_AvatarStorePath otherwize I get an error about lowercase letters.
So it appears the login screen, what is the login and password of the administrator?
Ran through the example steps on Mac OSX El Capitan for the port forwarding but I can't seem to access it via http://localhost
.
Here's the relevant config:
...
"HostConfig": {
...
"NetworkMode": "default",
"PortBindings": {
"3000/tcp": [
{
"HostIp": "",
"HostPort": "80"
}
]
},
...
"Config": {
"Hostname": "444eb6448532",
"Domainname": "",
"User": "rocket chat"
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"3000/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"ROOT_URL=http://localhost",
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"NODE_VERSION=0.10.43",
"NPM_VERSION=2.14.1",
"RC_VERSION=0.22.0",
"MONGO_URL=mongodb://db:27017/meteor",
"PORT=3000",
"Accounts_AvatarStorePath=/app/uploads"
],
"Cmd": [
"node",
"main.js"
],
"Image": "rocket.chat",
"Volumes": {
"/app/uploads": {}
},
"WorkingDir": "/app/bundle",
"Entrypoint": null,
"OnBuild": null,
"Labels": {},
"StopSignal": "SIGTERM"
},
...
"NetworkSettings": {
"Bridge": "",
"SandboxID": "xxx",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {
"3000/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "80"
}
]
},
"SandboxKey": "/var/run/docker/netns/64a4892b7bb4",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "xxx",
"Gateway": "172.17.0.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.3",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"MacAddress": "xx:xx:xx:xx:xx:xx",
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "xxx",
"EndpointID": "xxx",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.3",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "xx:xx:xx:xx:xx:xx"
}
}
}
Tried access 172.17.0.3
as well but no luck :(
The containers appear to be running, docker ps
shows me:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
444eb6448532 rocket.chat "node main.js" About an hour ago Up About an hour 0.0.0.0:80->3000/tcp rocket chat
d8673a449356 mongo "/entrypoint.sh --sma" About an hour ago Up About an hour 27017/tcp db
Hello,
I got this issue when I switched from 0.61.2 to 0.62.2: RocketChat/Rocket.Chat#10114 (comment)
The cause is a segmentation fault with node js 8.10: nodejs/node#19274
The breaking change is between 0.62.0 and 0.62.1 docker image:
docker run --rm -it library/rocket.chat:0.62.0 node --version
v8.9.4
docker run --rm -it library/rocket.chat:0.62.1 node --version
v8.10.0
Proposed fix: use node version 8.9 as base image.
If you try the instructions on dockerhub, RC won't start up properly
https://hub.docker.com/_/rocket-chat
OPLOG / REPLICASET IS REQUIRED TO RUN ROCKET.CHAT, MORE INFORMATION AT:
https://go.rocket.chat/i/oplog-required
The official node images are also available as "alpine" versions - please consider using these as base images which would reduce the image size a lot.
When updating to 0.60.0 node.js version will move to 8.x
Hello,
It seems that changes made in this repo are not mirrored on hub.docker.com.
Commit 49c5b9b says update to to 0.73.2 but latest tag on dockerhub is still 0.71.1 : https://hub.docker.com/_/rocket-chat?tab=tags&page=1
Latest comment in this issue (#61 (comment)) is also mentioning this problem.
Hello,
I am unable to use this image.
The box is a Debian 8 fully upgraded.
Info:
e7099b4a072358236e2930abc438af2643a89eba879e7640c398215ea697b219
Error response from daemon: Cannot start container e7099b4a072358236e2930abc438af2643a89eba879e7640c398215ea697b219: [8] System error: exec: "-ti": executable file not found in $PATH
19:54:18 ✘ ⚡ /data
Client:
Version: 1.9.1
API version: 1.21
Go version: go1.4.2
Git commit: a34a1d5
Built: Fri Nov 20 12:59:02 UTC 2015
OS/Arch: linux/amd64
Server:
Version: 1.9.1
API version: 1.21
Go version: go1.4.2
Git commit: a34a1d5
Built: Fri Nov 20 12:59:02 UTC 2015
OS/Arch: linux/amd64
19:55:31 ⚡ /data
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e7099b4a0723 rocketchat/rocket.chat "-ti" About a minute ago Created rocketchat
1582f0c0ac95 mongo "/entrypoint.sh --sma" 6 minutes ago Up 6 minutes 27017/tcp rocketchatdb
Warning: connect.session() MemoryStore is not
designed for a production environment, as it will leak
memory, and will not scale past a single process.
Tue, 24 Jul 2018 14:53:34 GMT connect deprecated multipart: use parser (multiparty, busboy, formidable) npm module instead at npm/node_modules/connect/lib/middleware/bodyParser.js:56:20
Tue, 24 Jul 2018 14:53:34 GMT connect deprecated limit: Restrict request size at location of read at npm/node_modules/connect/lib/middleware/multipart.js:86:15
FATAL ERROR: Zone Allocation failed - process out of memory
1: node::Abort() [node]
2: 0x121a2cc [node]
3: v8::Utils::ReportOOMFailure(char const*, bool) [node]
4: v8::internal::V8::FatalProcessOutOfMemory(char const*, bool) [node]
5: v8::internal::Zone::New(unsigned long) [node]
6: v8::internal::compiler::SimplifiedOperatorBuilder::LoadField(v8::internal::compiler::FieldAccess const&) [node]
7: v8::internal::compiler::JSTypedLowering::ReduceJSLoadContext(v8::internal::compiler::Node*) [node]
8: v8::internal::compiler::JSTypedLowering::Reduce(v8::internal::compiler::Node*) [node]
9: v8::internal::compiler::GraphReducer::Reduce(v8::internal::compiler::Node*) [node]
10: v8::internal::compiler::GraphReducer::ReduceTop() [node]
11: v8::internal::compiler::GraphReducer::ReduceNode(v8::internal::compiler::Node*) [node]
12: v8::internal::compiler::TypedLoweringPhase::Run(v8::internal::compiler::PipelineData*, v8::internal::Zone*) [node]
13: v8::internal::compiler::PipelineImpl::CreateGraph() [node]
14: v8::internal::compiler::PipelineCompilationJob::PrepareJobImpl() [node]
15: v8::internal::CompilationJob::PrepareJob() [node]
16: 0xdc6269 [node]
17: v8::internal::Compiler::CompileOptimized(v8::internal::Handlev8::internal::JSFunction, v8::internal::ConcurrencyMode) [node]
18: v8::internal::Runtime_CompileOptimized_Concurrent(int, v8::internal::Object**, v8::internal::Isolate*) [node]
19: 0x1c0923b0463d
User can not login after the docker restart, but the data about user is still stored in the docker db.
[ha.]pool.sks-keyservers.net seems to have a IPv4 vs. IPv6 thing: GPG's dirmngr might select a v6 server from the pool and try to connect to it, even though it doesn't have v6 connectivity inside the container. So build fails every now and then.
(could be this bug: https://bugs.launchpad.net/ubuntu/+source/gnupg2/+bug/1625845)
If one wants stay with sks-keyservers, ipv4.pool.sks-keyservers.net can be used.
Looks like there might be a new key signing Rocket.Chat releases now?
Step 8/13 : RUN curl -fSL "https://releases.rocket.chat/${RC_VERSION}/download" -o rocket.chat.tgz && curl -fSL "https://releases.rocket.chat/${RC_VERSION}/asc" -o rocket.chat.tgz.asc && gpg --batch --verify rocket.chat.tgz.asc rocket.chat.tgz && tar zxvf rocket.chat.tgz && rm rocket.chat.tgz rocket.chat.tgz.asc && cd bundle/programs/server && npm install
---> Running in c7f761dd80d4
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 225 100 225 0 0 608 0 --:--:-- --:--:-- --:--:-- 609
100 141M 100 141M 0 0 8594k 0 0:00:16 0:00:16 --:--:-- 9972k
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 233 100 233 0 0 661 0 --:--:-- --:--:-- --:--:-- 661
100 819 100 819 0 0 1493 0 --:--:-- --:--:-- --:--:-- 1493
gpg: Signature made Tue May 29 20:25:09 2018 UTC using RSA key ID 4FD08104
gpg: BAD signature from "Rocket.Chat Buildmaster <[email protected]>"
I'm trying to make RocketChat work with a MongoDB replicaset, but I get the following error:
Exception in callback of async function: MongoError: not master and slaveOk=false
at Function.MongoError.create (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/error.js:31:11)
at queryCallback (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/cursor.js:212:36)
at /app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/connection/pool.js:469:18
at _combinedTickCallback (internal/process/next_tick.js:131:7)
at process._tickDomainCallback (internal/process/next_tick.js:218:9)
Exception in setInterval callback: MongoError: not master
at Function.MongoError.create (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/error.js:31:11)
at /app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/connection/pool.js:497:72
at authenticateStragglers (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/connection/pool.js:443:16)
at Connection.messageHandler (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/connection/pool.js:477:5)
at Socket.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/connection/connection.js:333:22)
at emitOne (events.js:116:13)
at Socket.emit (events.js:211:7)
at addChunk (_stream_readable.js:263:12)
at readableAddChunk (_stream_readable.js:250:11)
at Socket.Readable.push (_stream_readable.js:208:10)
at TCP.onread (net.js:594:20)
Looks like Rocket.Chat don't allow to read from a replica. Would it be possible to change this behaviour?
When we stop the container by docker-compose down
and after that when we restart it then all our stored DB data is gone. So to solve this we will need to use volumes to persist data.
I will make a PR for the same
Is it possible to climb without being 80?
I tried to setup Rocket.Chat with the provided docker-compose.yml
file and get an error message after the rocket.chat
image got extracted.
docker-compose.yml
file from https://github.com/RocketChat/Rocket.Chat/blob/develop/docker-compose.ymldocker-compose up
Images should be downloaded, extracted without errors and then started.
After extracting the image rocketchat/rocket.chat:latest
I get the message
ERROR: failed to register layer: ApplyLayer exit status 1 stdout: stderr: lchown /app: invalid argument
Pulling rocketchat (rocketchat/rocket.chat:latest)...
latest: Pulling from rocketchat/rocket.chat
bc9ab73e5b14: Pull complete
3f117e0d3349: Pull complete
29f0971335c1: Pull complete
a717aa7e730b: Pull complete
0a2d97db0648: Pull complete
964c6c38250f: Pull complete
2e372371e9f6: Extracting [==================================================>] 143.6MB/143.6MB
ERROR: failed to register layer: ApplyLayer exit status 1 stdout: stderr: lchown /app: invalid argument
I've created an issue at the Rocket.Chat repository at RocketChat/Rocket.Chat#14914 and noticed that this issue is better located here since it is related to the docker image specifically. I will close the other issue after this has been created.
Can you please respond to the docker official library here: docker-library/official-images#888
Danke!
Pierre
Hi,
I used your image to install my rocket.chat instance, it works fine but i cannot manage to find
where the uploaded files and avatars are stored ?
I think there is a volume missing so that they would get saved if the image is restarted ?
Thanks,
Regards,
I would like to use rocketchat on-premise in an environment without internet access.
I used the rocketchat stable helm chart (multiple versions) to install rocketchat in kubernetes (kubespray 1.14.1)
Rocketchat wasn't able to start until I added extra args for http_proxy, https_proxy and no_proxy to the vars of the helm chart.
Took me a lot of time to find out why rocket chat would't start because there where no errors in the logs beside the health check fails for port 3000. And because of that the container kept restarting.
Hello,
Currently Docker image is using Mongo 3.2, but the recommendation is to use version 3.6 or more. Please consider updating Docker Compose file to latest stable version.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.