Merge pull request #2 from koodiklinikka/docker

Put api app to container
This commit is contained in:
Niko Kurtti
2015-03-30 19:32:39 +03:00
5 changed files with 75 additions and 1 deletions

37
Dockerfile Normal file
View File

@@ -0,0 +1,37 @@
FROM ubuntu:trusty
MAINTAINER "Niko Kurtti niko@salaliitto.com"
ENV NODE_VER v0.10.25
ENV PORT 9000
RUN apt-get update
RUN apt-get install -y git build-essential libssl-dev curl
RUN groupadd -r koodiklinikka-api && useradd --create-home -r -g koodiklinikka-api koodiklinikka-api
ADD . /home/koodiklinikka/koodiklinikka.fi-api
RUN chown -R koodiklinikka-api:koodiklinikka-api /home/koodiklinikka/koodiklinikka.fi-api
USER koodiklinikka-api
RUN git clone https://github.com/creationix/nvm ~/.nvm
RUN cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`
RUN /bin/bash -c "source ~/.nvm/nvm.sh \
&& nvm install ${NODE_VER} \
&& nvm alias koodiklinikka.fi-api ${NODE_VER}"
WORKDIR /home/koodiklinikka/koodiklinikka.fi-api
RUN /bin/bash -c "source ~/.nvm/nvm.sh \
&& nvm use koodiklinikka.fi-api \
&& npm install"
RUN cp node_modules/newrelic/newrelic.js .
RUN NR_KEY=$(cat config.json |grep newrelic_key|cut -d'"' -f4) && sed -i "s/license key here/$NR_KEY/g" newrelic.js
RUN sed -i "s/My Application/koodiklinikka.fi-api/g" newrelic.js
CMD NODE_ENV=$NODE_ENV PORT=$PORT /bin/bash -c "source ~/.nvm/nvm.sh \
&& nvm use koodiklinikka.fi-api \
&& node index.js >> ~/koodiklinikka.fi-api.log 2>&1"
EXPOSE $PORT

15
build_docker Executable file
View File

@@ -0,0 +1,15 @@
#!/bin/bash
if [[ -z "$1" ]]
then
KEYROOT=$HOME
else
KEYROOT=$1
fi
gem install ejson
ejson --keydir=$KEYROOT/.ejson decrypt config/config.production.ejson > config.json
docker build -t koodiklinikka.fi-api .
rm -rf config.json

View File

@@ -0,0 +1,20 @@
{
"_public_key": "94f3af35ad208d7bc7e3ddf1f9d181d090e3a1c74f9d56851c4f0f1efb04b571",
"newrelic_key": "EJ[1:8U8evsrlrGhenQ0Cv3XQR0SAYe6atL3PVKdj36Ue6SU=:Pdy9ugoJ3SglDvX6lGz2AyS2eKHHPm2E:uSzlBglVbzdbPPy3Pp/UMiJQn+6hhx/d2ohg94E/zvoS+8Jtl/2tPf6CQ3uFtbFvymYuDAwm+Fs=]",
"all": {
"slack": {
"token": "EJ[1:8U8evsrlrGhenQ0Cv3XQR0SAYe6atL3PVKdj36Ue6SU=:aXVSV+o3beRrV7ebgxf7c5D04RVnxu7s:Smhu1k+kH9IrlwUwzIuk2sJ/m+FuyLAbO4Da2PF0rIciwjJM881lM8GU+NcsxbuIUXMgzI1tRw/38hAAq6ISBA==]",
"private_channel": "EJ[1:8U8evsrlrGhenQ0Cv3XQR0SAYe6atL3PVKdj36Ue6SU=:UMpbg7pcRg6nVYLQZV8r6VCRyKQ+9gKd:DapGJCT2/aOzLAn00EfTSMfHGV+/pSrzZw==]",
"public_channel": "EJ[1:8U8evsrlrGhenQ0Cv3XQR0SAYe6atL3PVKdj36Ue6SU=:y8iIiUNS37cIAM7TBtExRmI9Cvn+LtRT:GjiDGA7mCUp5AaeKD4nnu9Qry9OUecI0DA==]"
},
"github": {
"token": "EJ[1:8U8evsrlrGhenQ0Cv3XQR0SAYe6atL3PVKdj36Ue6SU=:EnbOnnCLRxPi7iZ1pWV8qVJc+avDKS9u:MZkoAW0i6SUhgZFBREyRN6jBGQ9ZqeslG45XHJpCKm3Spi7VxVG1xv75vCqRA0KW0Uzs7VwQaZo=]"
},
"twitter": {
"consumerKey": "EJ[1:8U8evsrlrGhenQ0Cv3XQR0SAYe6atL3PVKdj36Ue6SU=:+1l4+Wdfd/0kegV1Xwu237xJut/XPRUi:fNTezQs1RJwTRZGlwm3Z3B6tV44H9nZUM/w7zYjyVyK8MpoX3NmhW68=]",
"consumerSecret": "EJ[1:8U8evsrlrGhenQ0Cv3XQR0SAYe6atL3PVKdj36Ue6SU=:YbWwBsImZi2bxNSB9byt9faJzS5Ug8Sd:Y4rZWaQJaIHfuyOFBIXJHCKxlfxrid14zTM7yECumhX5MZBTFCyAH5LijJCuCqm9PtZElEFW2nOrsLQBtnyF1I3V]",
"token": "EJ[1:8U8evsrlrGhenQ0Cv3XQR0SAYe6atL3PVKdj36Ue6SU=:3wRXcXnXmU5qekVuryuXT/sq1MuloOTe:TdGkIi7WEPXweAaVsLUjFekFrEHiTZuW7jr8Q4F8FLTjoXpHkwBD9f4SRnxQ4BC+CRRoaiOBe6zzTb99SWIDCZPS]",
"tokenSecret": "EJ[1:8U8evsrlrGhenQ0Cv3XQR0SAYe6atL3PVKdj36Ue6SU=:DwFvhyEfkpgRXlcuXVh6iHZXbPnWwRRV:q+RFJ0SXe5wkiccmM7n8pWJNf62ByMW6IXLU2tZkpHEo2zosU+eMAkXtF52x5vJiYaWrIsxUcJeYzLFyEQ==]"
}
}
}

View File

@@ -1,3 +1,4 @@
require('newrelic');
'use strict';
var express = require('express');

View File

@@ -26,6 +26,7 @@
"morgan": "^1.5.1",
"node-twitter": "0.5.2",
"superagent": "^0.21.0",
"validator": "^3.27.0"
"validator": "^3.27.0",
"newrelic": "^1.18.0"
}
}