badges / gh-badges

Go to badges/shields. Especially if you don't know why. (This repo is old.)
http://img.shields.io/
Creative Commons Zero v1.0 Universal
86 stars 29 forks source link

Running from Docker #47

Closed marcellodesales closed 8 years ago

marcellodesales commented 8 years ago

Hi there,

We have a network restriction to reach to shields website, so I'm trying to start the server using docker... I'm getting an error while running the built image... The error is:

> gh-badges@1.1.2 start /usr/src/app
> node server.js

http://[::1]:80/try.html
No secret data (secret.json, see server.js): { [Error: Cannot find module './secret.json'] code: 'MODULE_NOT_FOUND' }
No secret data (secret.json, see server.js): { [Error: Cannot find module './secret.json'] code: 'MODULE_NOT_FOUND' }

Questions

Here's what I did...

Building

[root@pppdc9prdabd shields]# docker build --build-arg HTTP_PROXY=$HTTP_PROXY -t badges .
INFO[0186] POST /v1.21/build?buildargs=%7B%22HTTP_PROXY%22%3A%22http%3A%2F%2Fqypprdproxy02.ie.intuit.net%3A80%22%7D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&memory=0&memswap=0&rm=1&t=badges&ulimits=null
Sending build context to Docker daemon 3.992 MB
Step 1 : FROM node:0.12.7-onbuild
# Executing 3 build triggers...
Step 1 : COPY package.json /usr/src/app/
 ---> Using cache
Step 1 : RUN npm install
 ---> Running in 38e1efb0fd3f
npm WARN package.json gh-badges@1.1.2 No README data
npm WARN package.json gh-badges@1.1.2 No bin file found at ./gh-badge.js

> canvas@1.1.6 install /usr/src/app/node_modules/canvas
> node-gyp rebuild

make: Entering directory '/usr/src/app/node_modules/canvas/build'
  SOLINK_MODULE(target) Release/obj.target/canvas-postbuild.node
  COPY Release/canvas-postbuild.node
  CXX(target) Release/obj.target/canvas/src/Canvas.o
  CXX(target) Release/obj.target/canvas/src/CanvasGradient.o
  CXX(target) Release/obj.target/canvas/src/CanvasPattern.o
  CXX(target) Release/obj.target/canvas/src/CanvasRenderingContext2d.o
  CXX(target) Release/obj.target/canvas/src/color.o
  CXX(target) Release/obj.target/canvas/src/Image.o
../src/Image.cc:661:13: warning: 'void jpeg_mem_src(j_decompress_ptr, void*, long int)' defined but not used [-Wunused-function]
 static void jpeg_mem_src (j_decompress_ptr cinfo, void* buffer, long nbytes) {
             ^
  CXX(target) Release/obj.target/canvas/src/ImageData.o
  CXX(target) Release/obj.target/canvas/src/init.o
  CXX(target) Release/obj.target/canvas/src/PixelArray.o
  CXX(target) Release/obj.target/canvas/src/FontFace.o
  SOLINK_MODULE(target) Release/obj.target/canvas.node
  COPY Release/canvas.node
make: Leaving directory '/usr/src/app/node_modules/canvas/build'
npm WARN engine gh-badges@0.2.3: wanted: {"node":"0.10.x"} (current: {"node":"0.12.7","npm":"2.14.1"})
npm WARN deprecated CSSselect@0.4.1: the module is now available as 'css-select'
npm WARN deprecated lodash@2.4.2: lodash@<3.0.0 is no longer maintained. Upgrade to lodash@^3.0.0.
npm WARN deprecated CSSwhat@0.4.7: the module is now available as 'css-what'

> ws@0.4.32 install /usr/src/app/node_modules/camp/node_modules/ws
> (node-gyp rebuild 2> builderror.log) || (exit 0)

make: Entering directory '/usr/src/app/node_modules/camp/node_modules/ws/build'
  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
  SOLINK_MODULE(target) Release/obj.target/bufferutil.node
  COPY Release/bufferutil.node
  CXX(target) Release/obj.target/validation/src/validation.o
  SOLINK_MODULE(target) Release/obj.target/validation.node
  COPY Release/validation.node
make: Leaving directory '/usr/src/app/node_modules/camp/node_modules/ws/build'

> phantomjs@1.9.19 install /usr/src/app/node_modules/phantomjs
> node install.js

PhantomJS not found on PATH
Downloading https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.8-linux-x86_64.tar.bz2
Saving to /usr/src/app/node_modules/phantomjs/phantomjs/phantomjs-1.9.8-linux-x86_64.tar.bz2
Using proxy http://qypprdproxy02.ie.intuit.net:80/
Receiving...

Received 12854K total.
Extracting tar contents (via spawned process)
Removing /usr/src/app/node_modules/phantomjs/lib/phantom
Copying extracted folder /usr/src/app/node_modules/phantomjs/phantomjs/phantomjs-1.9.8-linux-x86_64.tar.bz2-extract-1448919673297/phantomjs-1.9.8-linux-x86_64 -> /usr/src/app/node_modules/phantomjs/lib/phantom
Writing location.js file
Done. Phantomjs binary available at /usr/src/app/node_modules/phantomjs/lib/phantom/bin/phantomjs

> utf-8-validate@1.2.1 install /usr/src/app/node_modules/ass/node_modules/gh-badges/node_modules/camp/node_modules/ws/node_modules/utf-8-validate
> node-gyp rebuild

make: Entering directory '/usr/src/app/node_modules/ass/node_modules/gh-badges/node_modules/camp/node_modules/ws/node_modules/utf-8-validate/build'
  CXX(target) Release/obj.target/validation/src/validation.o
  SOLINK_MODULE(target) Release/obj.target/validation.node
  COPY Release/validation.node
make: Leaving directory '/usr/src/app/node_modules/ass/node_modules/gh-badges/node_modules/camp/node_modules/ws/node_modules/utf-8-validate/build'

> bufferutil@1.2.1 install /usr/src/app/node_modules/ass/node_modules/gh-badges/node_modules/camp/node_modules/ws/node_modules/bufferutil
> node-gyp rebuild

make: Entering directory '/usr/src/app/node_modules/ass/node_modules/gh-badges/node_modules/camp/node_modules/ws/node_modules/bufferutil/build'
  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
  SOLINK_MODULE(target) Release/obj.target/bufferutil.node
  COPY Release/bufferutil.node
make: Leaving directory '/usr/src/app/node_modules/ass/node_modules/gh-badges/node_modules/camp/node_modules/ws/node_modules/bufferutil/build'

> utf-8-validate@1.2.1 install /usr/src/app/node_modules/ass/node_modules/gh-badges/node_modules/camp/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/utf-8-validate
> node-gyp rebuild

make: Entering directory '/usr/src/app/node_modules/ass/node_modules/gh-badges/node_modules/camp/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/utf-8-validate/build'
  CXX(target) Release/obj.target/validation/src/validation.o
  SOLINK_MODULE(target) Release/obj.target/validation.node
  COPY Release/validation.node
make: Leaving directory '/usr/src/app/node_modules/ass/node_modules/gh-badges/node_modules/camp/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/utf-8-validate/build'

> bufferutil@1.2.1 install /usr/src/app/node_modules/ass/node_modules/gh-badges/node_modules/camp/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/bufferutil
> node-gyp rebuild

make: Entering directory '/usr/src/app/node_modules/ass/node_modules/gh-badges/node_modules/camp/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/bufferutil/build'
  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
  SOLINK_MODULE(target) Release/obj.target/bufferutil.node
  COPY Release/bufferutil.node
make: Leaving directory '/usr/src/app/node_modules/ass/node_modules/gh-badges/node_modules/camp/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/bufferutil/build'

> utf-8-validate@1.2.1 install /usr/src/app/node_modules/ass/node_modules/gh-badges/node_modules/camp/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/utf-8-validate
> node-gyp rebuild

make: Entering directory '/usr/src/app/node_modules/ass/node_modules/gh-badges/node_modules/camp/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/utf-8-validate/build'
  CXX(target) Release/obj.target/validation/src/validation.o
  SOLINK_MODULE(target) Release/obj.target/validation.node
  COPY Release/validation.node
make: Leaving directory '/usr/src/app/node_modules/ass/node_modules/gh-badges/node_modules/camp/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/utf-8-validate/build'

> bufferutil@1.2.1 install /usr/src/app/node_modules/ass/node_modules/gh-badges/node_modules/camp/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/bufferutil
> node-gyp rebuild

make: Entering directory '/usr/src/app/node_modules/ass/node_modules/gh-badges/node_modules/camp/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/bufferutil/build'
  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
  SOLINK_MODULE(target) Release/obj.target/bufferutil.node
  COPY Release/bufferutil.node
make: Leaving directory '/usr/src/app/node_modules/ass/node_modules/gh-badges/node_modules/camp/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/bufferutil/build'
dot@1.0.3 node_modules/dot

semver@4.3.6 node_modules/semver

should@3.0.1 node_modules/should

promise@7.0.4 node_modules/promise
└── asap@2.0.3

es6-promise@2.1.1 node_modules/es6-promise

mocha@1.14.0 node_modules/mocha
├── diff@1.0.7
├── growl@1.7.0
├── commander@2.0.0
├── mkdirp@0.3.5
├── debug@2.2.0 (ms@0.7.1)
├── glob@3.2.3 (inherits@2.0.1, graceful-fs@2.0.3, minimatch@0.2.14)
└── jade@0.26.3 (commander@0.6.1, mkdirp@0.3.0)

request@2.55.0 node_modules/request
├── caseless@0.9.0
├── aws-sign2@0.5.0
├── forever-agent@0.6.1
├── stringstream@0.0.5
├── oauth-sign@0.6.0
├── tunnel-agent@0.4.1
├── isstream@0.1.2
├── json-stringify-safe@5.0.1
├── node-uuid@1.4.7
├── qs@2.4.2
├── combined-stream@0.0.7 (delayed-stream@0.0.5)
├── form-data@0.2.0 (async@0.9.2)
├── tough-cookie@2.2.1
├── mime-types@2.0.14 (mime-db@1.12.0)
├── http-signature@0.10.1 (assert-plus@0.1.5, asn1@0.1.11, ctype@0.5.3)
├── bl@0.9.4 (readable-stream@1.0.33)
├── hawk@2.3.1 (cryptiles@2.0.5, sntp@1.0.9, boom@2.10.1, hoek@2.16.3)
└── har-validator@1.8.0 (commander@2.9.0, chalk@1.1.1, is-my-json-valid@2.12.3, bluebird@2.10.2)

redis@1.0.0 node_modules/redis

canvas@1.1.6 node_modules/canvas
└── nan@1.2.0

svgo@0.5.6 node_modules/svgo
├── whet.extend@0.9.9
├── sax@1.1.4
├── colors@1.1.2
├── mkdirp@0.5.1 (minimist@0.0.8)
├── coa@1.0.1 (q@1.4.1)
└── js-yaml@3.3.1 (esprima@2.2.0, argparse@1.0.3)

bower@1.4.2 node_modules/bower
├── is-root@1.0.0
├── junk@1.0.2
├── stringify-object@1.0.1
├── abbrev@1.0.7
├── user-home@1.1.1
├── chmodr@0.1.0
├── archy@1.0.0
├── opn@1.0.2
├── bower-logger@0.2.2
├── bower-endpoint-parser@0.2.2
├── graceful-fs@3.0.8
├── lockfile@1.0.1
├── nopt@3.0.6
├── lru-cache@2.7.0
├── retry@0.6.1
├── tmp@0.0.24
├── request-progress@0.3.1 (throttleit@0.0.2)
├── q@1.4.1
├── chalk@1.1.1 (escape-string-regexp@1.0.3, supports-color@2.0.0, ansi-styles@2.1.0, has-ansi@2.0.0, strip-ansi@3.0.0)
├── semver@2.3.2
├── shell-quote@1.4.3 (array-reduce@0.0.0, array-map@0.0.0, array-filter@0.0.1, jsonify@0.0.0)
├── bower-json@0.4.0 (intersect@0.0.3, deep-extend@0.2.11, graceful-fs@2.0.3)
├── p-throttler@0.1.1 (q@0.9.7)
├── fstream@1.0.8 (inherits@2.0.1, graceful-fs@4.1.2)
├── which@1.2.0 (is-absolute@0.1.7)
├── mkdirp@0.5.0 (minimist@0.0.8)
├── promptly@0.2.0 (read@1.0.7)
├── fstream-ignore@1.0.3 (inherits@2.0.1, minimatch@3.0.0)
├── glob@4.5.3 (inherits@2.0.1, once@1.3.3, inflight@1.0.4, minimatch@2.0.10)
├── rimraf@2.4.4 (glob@5.0.15)
├── insight@0.5.3 (object-assign@2.1.1, async@0.9.2, lodash.debounce@3.1.1, os-name@1.0.3, tough-cookie@0.12.1)
├── decompress-zip@0.1.0 (mkpath@0.1.0, touch@0.0.3, readable-stream@1.1.13, binary@0.3.0)
├── tar-fs@1.8.1 (pump@1.0.1, tar-stream@1.3.1)
├── update-notifier@0.3.2 (is-npm@1.0.0, string-length@1.0.1, semver-diff@2.1.0, latest-version@1.0.1)
├── request@2.53.0 (caseless@0.9.0, aws-sign2@0.5.0, forever-agent@0.5.2, stringstream@0.0.5, tunnel-agent@0.4.1, oauth-sign@0.6.0, isstream@0.1.2, json-stringify-safe@5.0.1, node-uuid@1.4.7, qs@2.3.3, combined-stream@0.0.7, form-data@0.2.0, mime-types@2.0.14, tough-cookie@2.2.1, http-signature@0.10.1, bl@0.9.4, hawk@2.3.1)
├── bower-registry-client@0.3.0 (graceful-fs@2.0.3, request-replay@0.2.0, rimraf@2.2.8, lru-cache@2.3.1, mkdirp@0.3.5, async@0.2.10, request@2.51.0)
├── github@0.2.4 (mime@1.3.4)
├── cardinal@0.4.4 (ansicolors@0.2.1, redeyed@0.4.4)
├── mout@0.11.1
├── bower-config@0.6.1 (osenv@0.0.3, graceful-fs@2.0.3, optimist@0.6.1, mout@0.9.1)
├── configstore@0.3.2 (object-assign@2.1.1, xdg-basedir@1.0.1, uuid@2.0.1, osenv@0.1.3, js-yaml@3.4.6)
├── inquirer@0.8.0 (ansi-regex@1.1.1, figures@1.4.0, mute-stream@0.0.4, through@2.3.8, readline2@0.1.1, chalk@0.5.1, lodash@2.4.2, cli-color@0.3.3, rx@2.5.3)
└── handlebars@2.0.0 (optimist@0.3.7, uglify-js@2.3.6)

camp@15.5.5 node_modules/camp
├── multilog@14.11.22
├── fleau@15.3.3
├── formidable@1.0.17
├── ws@0.4.32 (tinycolor@0.0.1, options@0.0.6, commander@2.1.0, nan@1.0.0)
└── socket.io@0.9.17 (base64id@0.1.0, policyfile@0.0.4, redis@0.7.3, socket.io-client@0.9.16)

phantomjs@1.9.19 node_modules/phantomjs
├── which@1.0.9
├── progress@1.1.8
├── kew@0.4.0
├── request-progress@0.3.1 (throttleit@0.0.2)
├── md5@2.0.0 (charenc@0.0.1, crypt@0.0.1, is-buffer@1.0.2)
├── adm-zip@0.4.4
├── npmconf@2.1.1 (uid-number@0.0.5, ini@1.3.4, inherits@2.0.1, once@1.3.3, osenv@0.1.3, config-chain@1.1.9, nopt@3.0.6, mkdirp@0.5.1)
├── fs-extra@0.23.1 (path-is-absolute@1.0.0, jsonfile@2.2.3, graceful-fs@4.1.2, rimraf@2.4.4)
└── request@2.42.0 (caseless@0.6.0, aws-sign2@0.5.0, stringstream@0.0.5, tunnel-agent@0.4.1, forever-agent@0.5.2, oauth-sign@0.4.0, json-stringify-safe@5.0.1, qs@1.2.2, node-uuid@1.4.7, mime-types@1.0.2, tough-cookie@2.2.1, form-data@0.1.4, http-signature@0.10.1, bl@0.9.4, hawk@1.1.1)

ass@0.0.6 node_modules/ass
├── async@0.9.0
├── temp@0.8.1 (rimraf@2.2.8)
├── cheerio@0.14.0 (entities@1.0.0, CSSselect@0.4.1, lodash@2.4.2, htmlparser2@3.7.3)
├── blanket@1.1.6 (falafel@0.1.6, xtend@2.1.2, esprima@1.0.4)
└── gh-badges@0.2.3 (es6-promise@0.1.2, svgo@0.4.5, camp@13.11.9)
Step 1 : COPY . /usr/src/app
 ---> 45d4fd8a836c
Removing intermediate container 38e1efb0fd3f
Removing intermediate container aef6a59b2157
Step 2 : ENV INFOSITE http://shields.io
 ---> Running in c47af377d9c2
 ---> c4bdbc6517d9
Removing intermediate container c47af377d9c2
Step 3 : EXPOSE 80
 ---> Running in 036ca1307161
 ---> d8436111866a
Removing intermediate container 036ca1307161
Successfully built d8436111866a

Running

[root@pppdc9prdabd shields]# docker run -ti -p 80:80 -e INFOSITE=http://ci.nodejs.isp.corp.intuit.net badges
INFO[0548] POST /v1.21/containers/create
INFO[0549] POST /v1.21/containers/665802f3194e2e0425ec38ddb6709256a500245c0521401dd4d2e6b400572d4f/attach?stderr=1&stdin=1&stdout=1&stream=1
INFO[0549] POST /v1.21/containers/665802f3194e2e0425ec38ddb6709256a500245c0521401dd4d2e6b400572d4f/start
INFO[0549] POST /v1.21/containers/665802f3194e2e0425ec38ddb6709256a500245c0521401dd4d2e6b400572d4f/resize?h=16&w=98

> gh-badges@1.1.2 start /usr/src/app
> node server.js

http://[::1]:80/try.html
No secret data (secret.json, see server.js): { [Error: Cannot find module './secret.json'] code: 'MODULE_NOT_FOUND' }
No secret data (secret.json, see server.js): { [Error: Cannot find module './secret.json'] code: 'MODULE_NOT_FOUND' }
espadrine commented 8 years ago

Hi!

First things first, this repo is dead. The real repo is here: https://github.com/badges/shields/.

Is there anything I need to run the server using Docker?

Hopefully none? The latest change to the dockerfile was here: https://github.com/badges/shields/commit/5335c872a0eebd1d090afcbd75d31f7720247b6e.

What's the secret module that's missing?

The secret.json file includes secrets required by some vendors (eg, GitHub will put restrictions in rate limiting unless you are identified by a secret token).

Something like this will give you the list of keys:

cat server.js | grep 'serverSecrets\.' | sed 's,.*serverSecrets.,,' | sed 's,[^a-z_]*$,,' | sort | uniq

Where's it required?

$ git grep 'require.*secret.json'
server.js:  serverSecrets = require('./secret.json');
suggest.js:  serverSecrets = require('./secret.json');

How to generate it?

By painstakingly going through each vendor, reading up on the issues related to their integration to shields, creating a dev account for each one, and generating tokens.

If you don't care about those vendors, you can just ignore that, the server will run even without those tokens. Alternatively, you can echo '{}' > secret.json and be done with it.

marcellodesales commented 8 years ago

Thank you @espadrine... I will verify the other repo!!! I did not pay attention :S

marcellodesales commented 8 years ago

@espadrine Worked like a charm!!! Thanks a lot!