From 3496a7c1cbce542e5886f2cfa408d11576143605 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Sat, 21 Jun 2014 18:10:39 +0200 Subject: [PATCH 01/28] ease docker installation --- Dockerfile | 32 +++++++++++++++++++++++--------- docker/starter.sh | 19 +++++++++++++++++++ docker/x11vnc.sh | 23 +++++++++++++++++++++++ docker/xvfb.sh | 26 ++++++++++++++++++++++++++ package.json | 4 +++- 5 files changed, 94 insertions(+), 10 deletions(-) create mode 100755 docker/starter.sh create mode 100755 docker/x11vnc.sh create mode 100755 docker/xvfb.sh diff --git a/Dockerfile b/Dockerfile index ec3d200..8a8f581 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,25 +2,39 @@ FROM stackbrew/ubuntu:saucy ENV DEBIAN_FRONTEND noninteractive +MAINTAINER Kenny DITS "kenny.dits@m6.fr" +MAINTAINER Jérémy JOURDIN "jjourdin.externe@m6.fr" + RUN apt-get update -y -RUN apt-get install -y git nginx software-properties-common python-software-properties python g++ make bzip2 +RUN apt-get upgrade -y +RUN apt-get install -y wget git nginx software-properties-common python-software-properties python g++ make bzip2 +RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - +RUN sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list' RUN apt-add-repository ppa:chris-lea/node.js RUN apt-get update -y -RUN apt-get install -y nodejs +RUN apt-get install -y screen x11vnc openjdk-7-jre-headless google-chrome-stable xvfb nodejs xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic ADD . /var/www WORKDIR /var/www +RUN cp app/scripts/config.js.dist app/scripts/config.js + RUN npm install -RUN npm install grunt -RUN npm install -g bower grunt-cli -RUN bower install --allow-root +RUN ./node_modules/.bin/bower install --allow-root -RUN cp app/scripts/config.js.dist app/scripts/config.js -RUN grunt build +RUN ./node_modules/.bin/grunt build ADD docker/nginx-vhost.conf /etc/nginx/sites-available/default -CMD ["-g", "daemon off;"] -ENTRYPOINT ["/usr/sbin/nginx"] \ No newline at end of file +RUN echo "daemon off;" >> /etc/nginx/nginx.conf + +RUN mkdir ~/.vnc + +EXPOSE 80 5999 + +ENV DISPLAY :99 + +CMD ["prod"] + +ENTRYPOINT ["/var/www/docker/starter.sh"] diff --git a/docker/starter.sh b/docker/starter.sh new file mode 100755 index 0000000..7b0386a --- /dev/null +++ b/docker/starter.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +case "$1" in + "prod") + service nginx start + ;; + "dev") + /var/www/docker/xvfb.sh start + /var/www/docker/x11vnc.sh start + /var/www/node_modules/.bin/webdriver-manager update + /bin/bash + ;; + "test") + /var/www/docker/xvfb.sh start + /var/www/docker/x11vnc.sh start + /var/www/node_modules/.bin/webdriver-manager update + /var/www/node_modules/.bin/grunt test + ;; +esac \ No newline at end of file diff --git a/docker/x11vnc.sh b/docker/x11vnc.sh new file mode 100755 index 0000000..06b756a --- /dev/null +++ b/docker/x11vnc.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +X11VNC=/usr/bin/x11vnc +X11VNCARGS="-display $DISPLAY -N -forever" +PIDFILE=/var/run/x11vnc.pid +case "$1" in + start) + echo -n "Starting VNC Server: X11VNC" + start-stop-daemon --start --pidfile $PIDFILE --make-pidfile --background --exec $X11VNC -- $X11VNCARGS + echo "." + ;; + stop) + echo -n "Stopping VNC Server: X11VNC" + start-stop-daemon --stop --pidfile $PIDFILE + echo "." + ;; + restart) + $0 stop + $0 start + ;; +esac + +exit 0 \ No newline at end of file diff --git a/docker/xvfb.sh b/docker/xvfb.sh new file mode 100755 index 0000000..1f40d86 --- /dev/null +++ b/docker/xvfb.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +XVFB=/usr/bin/Xvfb +XVFBARGS="$DISPLAY -shmem -screen 0 1366x768x16" +PIDFILE=/var/run/xvfb.pid +case "$1" in + start) + echo -n "Starting virtual X frame buffer: Xvfb" + start-stop-daemon --start --pidfile $PIDFILE --make-pidfile --background --exec $XVFB -- $XVFBARGS + echo "." + ;; + stop) + echo -n "Stopping virtual X frame buffer: Xvfb" + start-stop-daemon --stop --pidfile $PIDFILE + echo "." + ;; + restart) + $0 stop + $0 start + ;; + *) + echo "Usage: /etc/init.d/xvfb {start|stop|restart}" + exit 1 +esac + +exit 0 \ No newline at end of file diff --git a/package.json b/package.json index f1a5398..a377db3 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,9 @@ "name": "babitchfrontend", "version": "0.0.0", "dependencies": { - "faye": "~1.0.1" + "faye": "~1.0.1", + "bower": "~1.3.5", + "grunt-cli": "~0.1.13" }, "devDependencies": { "grunt": "~0.4.1", From 075cbeeffae98f4c6800c5ae988de9e0382ed694 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Sun, 22 Jun 2014 20:56:18 +0200 Subject: [PATCH 02/28] Add FTP Server to docker container in dev mode --- .travis.yml | 35 +++++----------------- Dockerfile | 6 ++-- README.md | 70 +++---------------------------------------- doc/contribute.md | 17 +++++++++++ doc/index.md | 9 ++++++ doc/install/docker.md | 13 ++++++++ doc/install/git.md | 33 ++++++++++++++++++++ doc/use/docker.md | 38 +++++++++++++++++++++++ doc/use/git.md | 21 +++++++++++++ docker/proftpd.conf | 23 ++++++++++++++ docker/starter.sh | 4 +-- 11 files changed, 172 insertions(+), 97 deletions(-) create mode 100644 doc/contribute.md create mode 100644 doc/index.md create mode 100644 doc/install/docker.md create mode 100644 doc/install/git.md create mode 100644 doc/use/docker.md create mode 100644 doc/use/git.md create mode 100644 docker/proftpd.conf diff --git a/.travis.yml b/.travis.yml index 2553162..eab2e4b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,32 +3,13 @@ node_js: - '0.10' before_script: - - "export DISPLAY=:99.0" - - "sh -e /etc/init.d/xvfb start" - - 'npm install' - - 'npm install -g bower' - - 'npm install -g grunt-cli' - - 'bower install --config.interactive=false' - - cp app/scripts/config.js.dist app/scripts/config.js - - "sudo apt-get remove chromium-browser" - - "echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | sudo debconf-set-selections" - - "sudo apt-get install ttf-mscorefonts-installer" - - "sudo apt-get install x-ttcidfont-conf" - - "sudo mkfontdir" - - "sudo apt-get install defoma libgl1-mesa-dri xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic" - - "wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb" - - "sudo mkdir -p /usr/share/desktop-directories" - - "sudo dpkg -i google-chrome-stable_current_amd64.deb" - - "sudo apt-get install -f" - - "sudo dpkg -i google-chrome-stable_current_amd64.deb" - - "export CHROME_SANDBOX=/opt/google/chrome/chrome-sandbox" - - "sudo rm -f $CHROME_SANDBOX" - - "sudo wget https://googledrive.com/host/0B5VlNZ_Rvdw6NTJoZDBSVy1ZdkE -O $CHROME_SANDBOX" - - "sudo chown root:root $CHROME_SANDBOX; sudo chmod 4755 $CHROME_SANDBOX" - - "sudo md5sum $CHROME_SANDBOX" - - "export DISPLAY=:99.0" - - "Xvfb :99.0 -extension RANDR > /dev/null &" - - "sudo chmod 1777 /dev/shm" + - "sudo apt-get update" + - "sudo apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring apt-transport-https" + - "sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys" + - "sudo sh -c 'echo deb https://get.docker.io/ubuntu docker main\ > /etc/apt/sources.list.d/docker.list'" + - "sudo apt-get update" + - "sudo apt-get install lxc-docker" script: - - grunt test-travis + - "sudo docker build -t babitch_client_travis ." + - "sudo docker run --privileged -it --rm m6web/babitch-client:1.0.0 test" diff --git a/Dockerfile b/Dockerfile index 8a8f581..b71bb49 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,7 +12,7 @@ RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key RUN sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list' RUN apt-add-repository ppa:chris-lea/node.js RUN apt-get update -y -RUN apt-get install -y screen x11vnc openjdk-7-jre-headless google-chrome-stable xvfb nodejs xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic +RUN apt-get install -y proftpd screen x11vnc openjdk-7-jre-headless google-chrome-stable xvfb nodejs xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic ADD . /var/www @@ -23,15 +23,17 @@ RUN cp app/scripts/config.js.dist app/scripts/config.js RUN npm install RUN ./node_modules/.bin/bower install --allow-root +RUN ./node_modules/.bin/webdriver-manager update RUN ./node_modules/.bin/grunt build ADD docker/nginx-vhost.conf /etc/nginx/sites-available/default +ADD docker/proftpd.conf /etc/proftpd/proftpd.conf RUN echo "daemon off;" >> /etc/nginx/nginx.conf RUN mkdir ~/.vnc -EXPOSE 80 5999 +EXPOSE 21 80 5999 ENV DISPLAY :99 diff --git a/README.md b/README.md index 1f499aa..98de300 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,10 @@ BabitchClient provides a simple responsive user interface. ![Babitch Screenshot](screenshot.png) +## Documentation + +Learn how to get your own private BabitchClient by reading our [documentation](./doc/). + ## Features * 2VS2 @@ -16,60 +20,6 @@ BabitchClient provides a simple responsive user interface. * Gravatar support * Lot of Stats by players and team -## Installation - -### Clone the project - -``` -$ git clone https://github.com/M6Web/BabitchClient.git -$ cd BabitchClient -$ cp app/scripts/config.js.dist app/scripts/config.js -``` - -### For production purposes -* Install the Babitch Server API => [M6Web/Babitch](https://github.com/M6Web/Babitch) -* Go to app/scripts/config.js and change server config - -``` -$ bower install -$ grunt build -``` - -Then, - -* Configure a Web Server (Apache/Nginx/...) with the `dist` folder as the doc root -* Launch `/` in a browser - -### For dev purposes -``` -$ npm install -$ bower install -$ grunt serve -``` -Then go to `http://127.0.0.1:8080/`, - -You have two options for the server side : - -* Install the Babitch Server API => [M6Web/Babitch](https://github.com/M6Web/Babitch) and change `app/scripts/config.js` -* Use the faked backend by adding `?nobackend` to the BabitchClient url - -#### Test (Unit & E2E) - -Only unit test : -* `grunt test-unit` - -Only E2E test : -* `grunt test-e2e` - -All test : -* `grunt test` - -## Live - -You need to configure `BABITCH_LIVE_FAYE_URL` and `BABITCH_LIVE_FAYE_CHANNEL` in `app/scripts/config.js` - -* User interface : `http://127.0.0.1:8080/#live` - ## Technical Stack * Yeoman, to boostrap the application @@ -79,18 +29,6 @@ You need to configure `BABITCH_LIVE_FAYE_URL` and `BABITCH_LIVE_FAYE_CHANNEL` in * Faye for realtime messaging * D3.js for data visualization -## Docker - -To use the `Dockerfile` in this repository, just clone and run (at the root): - - docker build -t m6web/babitch-client . - -Then run the container: - - docker run -p 8000:80 m6web/babitch-client - -You now have a BabitchClient listening on port `8000`! - ## Credits Developped by [M6 Web](http://tech.m6web.fr/). diff --git a/doc/contribute.md b/doc/contribute.md new file mode 100644 index 0000000..9a9d6c8 --- /dev/null +++ b/doc/contribute.md @@ -0,0 +1,17 @@ +# Contribute to BabitchClient + +Help us to improve the application by: + +* Giving us a feedback using Github Issues +* Sending us pull requests (with related tests) + +## Launch Tests (Unit & E2E) + +Only unit test : +* `./node_modules/.bin/grunt test-unit` + +Only E2E test : +* `./node_modules/.bin/grunt test-e2e` + +All test : +* `./node_modules/.bin/grunt test` \ No newline at end of file diff --git a/doc/index.md b/doc/index.md new file mode 100644 index 0000000..d9d060a --- /dev/null +++ b/doc/index.md @@ -0,0 +1,9 @@ +# BabitchClient Documentation + +* Install +..* [With GIT](./install/git.md) +..* [With Docker](./install/docker.md) +* Use +..* [With GIT](./use/git.md) +..* [With Docker](./use/docker.md) +* [Contribute](./contribute.md) \ No newline at end of file diff --git a/doc/install/docker.md b/doc/install/docker.md new file mode 100644 index 0000000..1d62675 --- /dev/null +++ b/doc/install/docker.md @@ -0,0 +1,13 @@ +# Install with Docker + +You have to do this step only if you wan't to build your own custom image, otherwise go to [the next step](../usage/docker.md). + +## Prepare image + +Follow the [GIT Installation process](./git.md). + +## Build image + +```shell +$ docker build -t m6web/babitch-client . +``` \ No newline at end of file diff --git a/doc/install/git.md b/doc/install/git.md new file mode 100644 index 0000000..bbf4633 --- /dev/null +++ b/doc/install/git.md @@ -0,0 +1,33 @@ +# Install with GIT + +## Clone the project + +```shell +$ git clone https://github.com/M6Web/BabitchClient.git +``` + +## Configure + +```shell +$ cd BabitchClient +$ cp app/scripts/config.js.dist app/scripts/config.js +``` + +Then edit app/scripts/config.js to match your requirements + +## For production purposes + +* Install the Babitch Server API => [M6Web/Babitch](https://github.com/M6Web/Babitch) +* Go to app/scripts/config.js and change server config + +``` +$ ./node_modules/.bin/bower install +$ ./node_modules/.bin/grunt build +``` + +## For dev purposes + +``` +$ npm install +$ ./node_modules/.bin/bower install +``` \ No newline at end of file diff --git a/doc/use/docker.md b/doc/use/docker.md new file mode 100644 index 0000000..18c5287 --- /dev/null +++ b/doc/use/docker.md @@ -0,0 +1,38 @@ +# Usage of Docker version + +## Development mode + +This mode make contribution easier, it run the container with the following component: + +- X11VNC: VNC Server used to render browser while protractor is running (port binding: `-p :5999`) +- XVFB: Virtual frame buffer used to simulate a display for protractor purposes +- ProFTPd: FTP server used to edit files in container from your favorite editor (port binding: `-p :21`) + +There is no Nginx running on dev mode as your will prefer to use `grunt serve` for development purpose. + +```shell +$ sudo docker run --privileged -t -i -p 8000:80 -p 5999:5999 -p 2121:21 m6web/babitch-client dev +``` + +## Production mode + +This mode provide a lightweight server, it run the container with the following component: + +- Nginx: Web server (port binding: `-p :80`) + +```shell +$ sudo docker run --privileged -t -i -p 8000:80 m6web/babitch-client prod +``` + +You now have a BabitchClient listening on port `8000`! + +## Test mode + +This mode simply launch test suites, it run the container with the following component: + +- X11VNC: VNC Server used to render browser while protractor is running (port binding: `-p :5999`) +- XVFB: Virtual frame buffer used to simulate a display for protractor purposes + +```shell +$ sudo docker run --privileged -t -i -p 5999:5999 m6web/babitch-client test +``` \ No newline at end of file diff --git a/doc/use/git.md b/doc/use/git.md new file mode 100644 index 0000000..c2e5342 --- /dev/null +++ b/doc/use/git.md @@ -0,0 +1,21 @@ +## Usage of GIT version + +## For production purposes + +* Configure a Web Server (Apache/Nginx/...) with the `dist` folder as the doc root +* Launch `/` in a browser + +### For dev purposes + +Launch: + +``` +$ grunt serve +``` + +Then go to `http://127.0.0.1:8080/`, + +You have two options for the server side : + +* Install the Babitch Server API => [M6Web/Babitch](https://github.com/M6Web/Babitch) and change `app/scripts/config.js` +* Use the faked backend by adding `?nobackend` to the BabitchClient url \ No newline at end of file diff --git a/docker/proftpd.conf b/docker/proftpd.conf new file mode 100644 index 0000000..a29c164 --- /dev/null +++ b/docker/proftpd.conf @@ -0,0 +1,23 @@ +ServerName "Babitch Client Container's FTP" +ServerType standalone +DefaultServer on +Port 21 +Umask 022 +MaxInstances 5 +User ftp +Group root +RequireValidShell off +AllowRetrieveRestart on +AllowStoreRestart on +ListOptions "l" +AuthPAM off +ServerIdent off +SystemLog /var/log/proftpd.log +TransferLog /var/log/xferlog + + + User ftp + UserAlias anonymous ftp + Group root + MaxClients 5 + \ No newline at end of file diff --git a/docker/starter.sh b/docker/starter.sh index 7b0386a..52c573c 100755 --- a/docker/starter.sh +++ b/docker/starter.sh @@ -7,13 +7,13 @@ case "$1" in "dev") /var/www/docker/xvfb.sh start /var/www/docker/x11vnc.sh start - /var/www/node_modules/.bin/webdriver-manager update + service proftpd start /bin/bash ;; "test") /var/www/docker/xvfb.sh start /var/www/docker/x11vnc.sh start - /var/www/node_modules/.bin/webdriver-manager update /var/www/node_modules/.bin/grunt test + exit $? ;; esac \ No newline at end of file From 1c01e9342fabe2215ec9343b1018a165e886c784 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Sun, 22 Jun 2014 21:21:43 +0200 Subject: [PATCH 03/28] Fix travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index eab2e4b..3b6c90c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ before_script: - "sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys" - "sudo sh -c 'echo deb https://get.docker.io/ubuntu docker main\ > /etc/apt/sources.list.d/docker.list'" - "sudo apt-get update" - - "sudo apt-get install lxc-docker" + - "sudo apt-get install --force-yes lxc-docker" script: - "sudo docker build -t babitch_client_travis ." From d0377dab57237c5accad9641e861860b3fd320a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Sun, 22 Jun 2014 21:30:33 +0200 Subject: [PATCH 04/28] Fix travis --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 3b6c90c..88fd91c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,8 @@ before_script: - "sudo sh -c 'echo deb https://get.docker.io/ubuntu docker main\ > /etc/apt/sources.list.d/docker.list'" - "sudo apt-get update" - "sudo apt-get install --force-yes lxc-docker" + - "/etc/init.d/docker start" script: - "sudo docker build -t babitch_client_travis ." - - "sudo docker run --privileged -it --rm m6web/babitch-client:1.0.0 test" + - "sudo docker run --privileged -it --rm babitch_client_travis test" From 000f9b10810602dbed47b3e1a53331a71671f0ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Sun, 22 Jun 2014 21:33:46 +0200 Subject: [PATCH 05/28] Fix travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 88fd91c..a5f8fd9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ before_script: - "sudo sh -c 'echo deb https://get.docker.io/ubuntu docker main\ > /etc/apt/sources.list.d/docker.list'" - "sudo apt-get update" - "sudo apt-get install --force-yes lxc-docker" - - "/etc/init.d/docker start" + - "service docker start" script: - "sudo docker build -t babitch_client_travis ." From 9ac2130656a4b6c8b0f3e350d202480460ea10e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Sun, 22 Jun 2014 21:38:05 +0200 Subject: [PATCH 06/28] Fix travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index a5f8fd9..022f09e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ before_script: - "sudo sh -c 'echo deb https://get.docker.io/ubuntu docker main\ > /etc/apt/sources.list.d/docker.list'" - "sudo apt-get update" - "sudo apt-get install --force-yes lxc-docker" - - "service docker start" + - "sudo service docker start" script: - "sudo docker build -t babitch_client_travis ." From 0ed205a700a54aad771f85770987f5102ce0c724 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Sun, 22 Jun 2014 21:51:56 +0200 Subject: [PATCH 07/28] Fix travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 022f09e..4f2aada 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ before_script: - "sudo sh -c 'echo deb https://get.docker.io/ubuntu docker main\ > /etc/apt/sources.list.d/docker.list'" - "sudo apt-get update" - "sudo apt-get install --force-yes lxc-docker" - - "sudo service docker start" + - "sudo docker -d" script: - "sudo docker build -t babitch_client_travis ." From 55052fed0cac6bd2cc1d01694b71750cb1e1530f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Sun, 22 Jun 2014 22:00:28 +0200 Subject: [PATCH 08/28] Fix travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 4f2aada..99cac97 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ before_script: - "sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys" - "sudo sh -c 'echo deb https://get.docker.io/ubuntu docker main\ > /etc/apt/sources.list.d/docker.list'" - "sudo apt-get update" - - "sudo apt-get install --force-yes lxc-docker" + - "sudo apt-get install --force-yes lxc lxc-docker" - "sudo docker -d" script: From 88e76ddb8b5223e1754adcc98e154d9546172abb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Sun, 22 Jun 2014 22:08:12 +0200 Subject: [PATCH 09/28] Fix travis --- .travis.yml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 99cac97..7d7736b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,13 +3,12 @@ node_js: - '0.10' before_script: - - "sudo apt-get update" - - "sudo apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring apt-transport-https" - - "sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys" - - "sudo sh -c 'echo deb https://get.docker.io/ubuntu docker main\ > /etc/apt/sources.list.d/docker.list'" - - "sudo apt-get update" - - "sudo apt-get install --force-yes lxc lxc-docker" - - "sudo docker -d" + - sudo sh -c "wget -qO- https://get.docker.io/gpg | apt-key add -" + - sudo sh -c "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list" + - sudo apt-get update + - echo exit 101 | sudo tee /usr/sbin/policy-rc.d + - sudo chmod +x /usr/sbin/policy-rc.d + - sudo apt-get install -qy slirp lxc lxc-docker script: - "sudo docker build -t babitch_client_travis ." From 861c8258c95a4d55b5ea4949664af0e685afb410 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Sun, 22 Jun 2014 22:26:49 +0200 Subject: [PATCH 10/28] Fix travis --- .travis.yml | 4 ++-- docker/travis.sh | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 docker/travis.sh diff --git a/.travis.yml b/.travis.yml index 7d7736b..e09bdf2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ before_script: - echo exit 101 | sudo tee /usr/sbin/policy-rc.d - sudo chmod +x /usr/sbin/policy-rc.d - sudo apt-get install -qy slirp lxc lxc-docker + - git clone git://github.com/jpetazzo/sekexe script: - - "sudo docker build -t babitch_client_travis ." - - "sudo docker run --privileged -it --rm babitch_client_travis test" + - sekexe/run "`pwd`/docker/travis.sh" diff --git a/docker/travis.sh b/docker/travis.sh new file mode 100644 index 0000000..e821b9a --- /dev/null +++ b/docker/travis.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# Exit on first error +set -e + +# Kill background processes on exit +trap 'kill $(jobs -p)' SIGINT SIGTERM EXIT + +# Start docker daemon +docker -d & +sleep 1 + +# Use docker +docker build -t babitch_client_travis . +docker run --privileged -it --rm babitch_client_travis test \ No newline at end of file From d507b5684d5b61a21442d44bf1f9b7d712b6113c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Sun, 22 Jun 2014 22:30:55 +0200 Subject: [PATCH 11/28] Fix travis --- docker/travis.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 docker/travis.sh diff --git a/docker/travis.sh b/docker/travis.sh old mode 100644 new mode 100755 From 65517841630a04b6a78ab0cc8939c75d54de5b04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Sun, 22 Jun 2014 22:35:57 +0200 Subject: [PATCH 12/28] Fix travis --- docker/travis.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/travis.sh b/docker/travis.sh index e821b9a..4a1e93c 100755 --- a/docker/travis.sh +++ b/docker/travis.sh @@ -11,5 +11,5 @@ docker -d & sleep 1 # Use docker -docker build -t babitch_client_travis . +docker build -t babitch_client_travis .. docker run --privileged -it --rm babitch_client_travis test \ No newline at end of file From 6d54517ce9f8ca356d7d092e7e0b50ca700875ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Sun, 22 Jun 2014 22:48:21 +0200 Subject: [PATCH 13/28] Fix travis --- docker/travis.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docker/travis.sh b/docker/travis.sh index 4a1e93c..4fcb9f7 100755 --- a/docker/travis.sh +++ b/docker/travis.sh @@ -10,6 +10,9 @@ trap 'kill $(jobs -p)' SIGINT SIGTERM EXIT docker -d & sleep 1 +ls -l +echo "${pwd}" + # Use docker docker build -t babitch_client_travis .. docker run --privileged -it --rm babitch_client_travis test \ No newline at end of file From daf0e413d6a4d52fbc8c580e34f0396613ea7db7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Sun, 22 Jun 2014 23:00:29 +0200 Subject: [PATCH 14/28] Fix travis --- .travis.yml | 3 ++- docker/travis.sh | 3 +-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index e09bdf2..41dce64 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,7 @@ language: node_js node_js: - '0.10' -before_script: +install: - sudo sh -c "wget -qO- https://get.docker.io/gpg | apt-key add -" - sudo sh -c "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list" - sudo apt-get update @@ -10,6 +10,7 @@ before_script: - sudo chmod +x /usr/sbin/policy-rc.d - sudo apt-get install -qy slirp lxc lxc-docker - git clone git://github.com/jpetazzo/sekexe + - echo $PWD script: - sekexe/run "`pwd`/docker/travis.sh" diff --git a/docker/travis.sh b/docker/travis.sh index 4fcb9f7..0fb5bc7 100755 --- a/docker/travis.sh +++ b/docker/travis.sh @@ -10,8 +10,7 @@ trap 'kill $(jobs -p)' SIGINT SIGTERM EXIT docker -d & sleep 1 -ls -l -echo "${pwd}" +echo $PWD # Use docker docker build -t babitch_client_travis .. From 1e9014397a2dd76e7954b74da6ac1810707b418e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Sun, 22 Jun 2014 23:03:46 +0200 Subject: [PATCH 15/28] Fix travis --- docker/travis.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/travis.sh b/docker/travis.sh index 0fb5bc7..ea48f27 100755 --- a/docker/travis.sh +++ b/docker/travis.sh @@ -10,7 +10,7 @@ trap 'kill $(jobs -p)' SIGINT SIGTERM EXIT docker -d & sleep 1 -echo $PWD +ls -l /home/travis # Use docker docker build -t babitch_client_travis .. From deeb46a963265bfbdaa9b4515f0aec7c3f4bba53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Sun, 22 Jun 2014 23:09:11 +0200 Subject: [PATCH 16/28] Fix travis --- .travis.yml | 2 +- docker/travis.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 41dce64..21075de 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,7 @@ install: - sudo chmod +x /usr/sbin/policy-rc.d - sudo apt-get install -qy slirp lxc lxc-docker - git clone git://github.com/jpetazzo/sekexe - - echo $PWD + - export BUILD_ROOT=$PWD script: - sekexe/run "`pwd`/docker/travis.sh" diff --git a/docker/travis.sh b/docker/travis.sh index ea48f27..bb28d8d 100755 --- a/docker/travis.sh +++ b/docker/travis.sh @@ -10,8 +10,8 @@ trap 'kill $(jobs -p)' SIGINT SIGTERM EXIT docker -d & sleep 1 -ls -l /home/travis +ls -l $BUILD_ROOT # Use docker -docker build -t babitch_client_travis .. +docker build -t babitch_client_travis $BUILD_ROOT docker run --privileged -it --rm babitch_client_travis test \ No newline at end of file From 7cdc470248c71023fbad0022379d1bf4f063ab04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Sun, 22 Jun 2014 23:11:48 +0200 Subject: [PATCH 17/28] Fix travis --- .travis.yml | 1 + docker/travis.sh | 1 + 2 files changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 21075de..85c82a1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,6 +11,7 @@ install: - sudo apt-get install -qy slirp lxc lxc-docker - git clone git://github.com/jpetazzo/sekexe - export BUILD_ROOT=$PWD + - echo $BUILD_ROOT script: - sekexe/run "`pwd`/docker/travis.sh" diff --git a/docker/travis.sh b/docker/travis.sh index bb28d8d..d9a032f 100755 --- a/docker/travis.sh +++ b/docker/travis.sh @@ -10,6 +10,7 @@ trap 'kill $(jobs -p)' SIGINT SIGTERM EXIT docker -d & sleep 1 +echo $BUILD_ROOT ls -l $BUILD_ROOT # Use docker From c63bc943045ddd700c07cb4ed613d389220685d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Sun, 22 Jun 2014 23:13:56 +0200 Subject: [PATCH 18/28] Fix travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 85c82a1..ed9a02a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,7 @@ install: - sudo chmod +x /usr/sbin/policy-rc.d - sudo apt-get install -qy slirp lxc lxc-docker - git clone git://github.com/jpetazzo/sekexe - - export BUILD_ROOT=$PWD + - export BUILD_ROOT="$PWD" - echo $BUILD_ROOT script: From 34270d3eb04b72d1acab8a10f0f705342ec9bb7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Sun, 22 Jun 2014 23:19:13 +0200 Subject: [PATCH 19/28] Fix travis --- .travis.yml | 4 +--- docker/travis.sh | 6 +++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index ed9a02a..50794e4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,8 +10,6 @@ install: - sudo chmod +x /usr/sbin/policy-rc.d - sudo apt-get install -qy slirp lxc lxc-docker - git clone git://github.com/jpetazzo/sekexe - - export BUILD_ROOT="$PWD" - - echo $BUILD_ROOT script: - - sekexe/run "`pwd`/docker/travis.sh" + - sekexe/run "`pwd`/docker/travis.sh `pwd`" diff --git a/docker/travis.sh b/docker/travis.sh index d9a032f..b5ef892 100755 --- a/docker/travis.sh +++ b/docker/travis.sh @@ -10,9 +10,9 @@ trap 'kill $(jobs -p)' SIGINT SIGTERM EXIT docker -d & sleep 1 -echo $BUILD_ROOT -ls -l $BUILD_ROOT +echo $1 +ls -l $1 # Use docker -docker build -t babitch_client_travis $BUILD_ROOT +docker build -t babitch_client_travis $1 docker run --privileged -it --rm babitch_client_travis test \ No newline at end of file From 20c50322aba7b6daa6d28291d6cc842413559e04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Mon, 23 Jun 2014 19:33:15 +0200 Subject: [PATCH 20/28] Fix travis --- docker/travis.sh | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/docker/travis.sh b/docker/travis.sh index b5ef892..462b82c 100755 --- a/docker/travis.sh +++ b/docker/travis.sh @@ -3,15 +3,19 @@ # Exit on first error set -e +# Mount rount +mount -t tmpfs none /root + # Kill background processes on exit trap 'kill $(jobs -p)' SIGINT SIGTERM EXIT +# Workaround with cgroup for recent version of docker +cgroups-umount +cgroups-mount + # Start docker daemon docker -d & -sleep 1 - -echo $1 -ls -l $1 +sleep 2 # Use docker docker build -t babitch_client_travis $1 From 4c6ed4c007693cd431184ca43a7fac022fac0ac8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Mon, 23 Jun 2014 20:04:52 +0200 Subject: [PATCH 21/28] Fix travis --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index b71bb49..bf22022 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,12 +7,12 @@ MAINTAINER Jérémy JOURDIN "jjourdin.externe@m6.fr" RUN apt-get update -y RUN apt-get upgrade -y -RUN apt-get install -y wget git nginx software-properties-common python-software-properties python g++ make bzip2 +RUN apt-get install --force-yes wget git nginx software-properties-common python-software-properties python g++ make bzip2 RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - RUN sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list' RUN apt-add-repository ppa:chris-lea/node.js RUN apt-get update -y -RUN apt-get install -y proftpd screen x11vnc openjdk-7-jre-headless google-chrome-stable xvfb nodejs xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic +RUN apt-get install --force-yes proftpd screen x11vnc openjdk-7-jre-headless google-chrome-stable xvfb nodejs xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic ADD . /var/www From 8fa682eae897984a30d333046571a926b2929d42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Mon, 23 Jun 2014 20:09:12 +0200 Subject: [PATCH 22/28] Fix travis --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index bf22022..906cc43 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,6 +16,7 @@ RUN apt-get install --force-yes proftpd screen x11vnc openjdk-7-jre-headless goo ADD . /var/www + WORKDIR /var/www RUN cp app/scripts/config.js.dist app/scripts/config.js From daf029b38b227fede54d73d4771febe7a640a455 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Mon, 23 Jun 2014 21:36:22 +0200 Subject: [PATCH 23/28] Fix travis --- Dockerfile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 906cc43..def0128 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,16 +7,15 @@ MAINTAINER Jérémy JOURDIN "jjourdin.externe@m6.fr" RUN apt-get update -y RUN apt-get upgrade -y -RUN apt-get install --force-yes wget git nginx software-properties-common python-software-properties python g++ make bzip2 +RUN apt-get install -y wget git nginx software-properties-common python-software-properties python g++ make bzip2 RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - RUN sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list' RUN apt-add-repository ppa:chris-lea/node.js RUN apt-get update -y -RUN apt-get install --force-yes proftpd screen x11vnc openjdk-7-jre-headless google-chrome-stable xvfb nodejs xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic +RUN apt-get install -y --force-yes proftpd screen x11vnc openjdk-7-jre-headless google-chrome-stable xvfb nodejs xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic ADD . /var/www - WORKDIR /var/www RUN cp app/scripts/config.js.dist app/scripts/config.js From 670077d3b434f3db3759fb287ec92ba226a3b70c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Tue, 24 Jun 2014 09:59:43 +0200 Subject: [PATCH 24/28] Fix travis --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index 50794e4..5bc0391 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,9 @@ language: node_js node_js: - '0.10' +before_install: + - sudo apt-get clean -y + install: - sudo sh -c "wget -qO- https://get.docker.io/gpg | apt-key add -" - sudo sh -c "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list" From d427558aa235876450789753fd70ae964796de24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Wed, 25 Jun 2014 17:31:20 +0200 Subject: [PATCH 25/28] Fix Travis --- docker/travis.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker/travis.sh b/docker/travis.sh index 462b82c..3021fa7 100755 --- a/docker/travis.sh +++ b/docker/travis.sh @@ -17,6 +17,8 @@ cgroups-mount docker -d & sleep 2 +df + # Use docker docker build -t babitch_client_travis $1 docker run --privileged -it --rm babitch_client_travis test \ No newline at end of file From fce4187dc8d2dd14e3c06c2be21c08fcd603ff10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Wed, 25 Jun 2014 17:40:44 +0200 Subject: [PATCH 26/28] Fix Travis --- .travis.yml | 3 ++- docker/travis.sh | 2 -- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5bc0391..5cfea62 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,8 @@ node_js: - '0.10' before_install: - - sudo apt-get clean -y + - sudo apt-get autoclean -y + - sudo apt-get autoremove -y install: - sudo sh -c "wget -qO- https://get.docker.io/gpg | apt-key add -" diff --git a/docker/travis.sh b/docker/travis.sh index 3021fa7..462b82c 100755 --- a/docker/travis.sh +++ b/docker/travis.sh @@ -17,8 +17,6 @@ cgroups-mount docker -d & sleep 2 -df - # Use docker docker build -t babitch_client_travis $1 docker run --privileged -it --rm babitch_client_travis test \ No newline at end of file From 80af1df94a82ae16dd4a1f97b2cfde898d0e7d8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Thu, 26 Jun 2014 23:18:11 +0200 Subject: [PATCH 27/28] Add shared volume + overridable constants --- Dockerfile | 29 +++++++++++++++++++-------- docker/config.js.dist | 9 +++++++++ docker/nginx-vhost.conf | 2 +- docker/proftpd.conf | 23 ---------------------- docker/scripts/starter.sh | 36 ++++++++++++++++++++++++++++++++++ docker/{ => scripts}/travis.sh | 0 docker/{ => scripts}/x11vnc.sh | 0 docker/{ => scripts}/xvfb.sh | 0 docker/starter.sh | 19 ------------------ 9 files changed, 67 insertions(+), 51 deletions(-) create mode 100644 docker/config.js.dist delete mode 100644 docker/proftpd.conf create mode 100755 docker/scripts/starter.sh rename docker/{ => scripts}/travis.sh (100%) rename docker/{ => scripts}/x11vnc.sh (100%) rename docker/{ => scripts}/xvfb.sh (100%) delete mode 100755 docker/starter.sh diff --git a/Dockerfile b/Dockerfile index def0128..8488b70 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,31 +12,44 @@ RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key RUN sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list' RUN apt-add-repository ppa:chris-lea/node.js RUN apt-get update -y -RUN apt-get install -y --force-yes proftpd screen x11vnc openjdk-7-jre-headless google-chrome-stable xvfb nodejs xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic +RUN apt-get install -y --force-yes x11vnc openjdk-7-jre-headless google-chrome-stable xvfb nodejs xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic -ADD . /var/www +ADD . /var/www/tmp +ADD ./docker/scripts /var/www/scripts -WORKDIR /var/www +WORKDIR /var/www/tmp -RUN cp app/scripts/config.js.dist app/scripts/config.js +RUN cp docker/config.js.dist app/scripts/config.js RUN npm install RUN ./node_modules/.bin/bower install --allow-root -RUN ./node_modules/.bin/webdriver-manager update +# RUN ./node_modules/.bin/webdriver-manager update RUN ./node_modules/.bin/grunt build ADD docker/nginx-vhost.conf /etc/nginx/sites-available/default -ADD docker/proftpd.conf /etc/proftpd/proftpd.conf + +RUN mv dist ../prod + +WORKDIR /var/www + +RUN rm -rf tmp RUN echo "daemon off;" >> /etc/nginx/nginx.conf RUN mkdir ~/.vnc -EXPOSE 21 80 5999 +VOLUME ['/var/www/dev'] + +EXPOSE 21 80 ENV DISPLAY :99 +ENV BABITCH_WS_URL http://127.0.0.1:8081/app_dev.php/v1 +ENV BABITCH_LIVE_FAYE_URL http://faye-babitch.herokuapp.com/faye +ENV BABITCH_LIVE_FAYE_CHANNEL /test-channel-to-replace +ENV BABITCH_STATS_MIN_GAME_PLAYED 2 + CMD ["prod"] -ENTRYPOINT ["/var/www/docker/starter.sh"] +ENTRYPOINT ["/var/www/scripts/starter.sh"] diff --git a/docker/config.js.dist b/docker/config.js.dist new file mode 100644 index 0000000..1249f89 --- /dev/null +++ b/docker/config.js.dist @@ -0,0 +1,9 @@ +'use strict'; + +angular.module('babitchServer', []) + .constant('CONFIG', { + 'BABITCH_WS_URL': '%BABITCH_WS_URL%', + 'BABITCH_LIVE_FAYE_URL' :'%BABITCH_LIVE_FAYE_URL%', + 'BABITCH_LIVE_FAYE_CHANNEL' :'%BABITCH_LIVE_FAYE_CHANNEL%', + 'BABITCH_STATS_MIN_GAME_PLAYED' : '%BABITCH_STATS_MIN_GAME_PLAYED%' + }); diff --git a/docker/nginx-vhost.conf b/docker/nginx-vhost.conf index eadeda7..9d4293f 100644 --- a/docker/nginx-vhost.conf +++ b/docker/nginx-vhost.conf @@ -1,4 +1,4 @@ server { listen 80; - root /var/www/dist/; + root /var/www/prod/; } \ No newline at end of file diff --git a/docker/proftpd.conf b/docker/proftpd.conf deleted file mode 100644 index a29c164..0000000 --- a/docker/proftpd.conf +++ /dev/null @@ -1,23 +0,0 @@ -ServerName "Babitch Client Container's FTP" -ServerType standalone -DefaultServer on -Port 21 -Umask 022 -MaxInstances 5 -User ftp -Group root -RequireValidShell off -AllowRetrieveRestart on -AllowStoreRestart on -ListOptions "l" -AuthPAM off -ServerIdent off -SystemLog /var/log/proftpd.log -TransferLog /var/log/xferlog - - - User ftp - UserAlias anonymous ftp - Group root - MaxClients 5 - \ No newline at end of file diff --git a/docker/scripts/starter.sh b/docker/scripts/starter.sh new file mode 100755 index 0000000..47269a1 --- /dev/null +++ b/docker/scripts/starter.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash + +sed -i -e "s|%BABITCH_WS_URL%|${BABITCH_WS_URL}|"\ + -e "s|%BABITCH_LIVE_FAYE_URL%|${BABITCH_LIVE_FAYE_URL}|"\ + -e "s|%BABITCH_LIVE_FAYE_CHANNEL%|${BABITCH_LIVE_FAYE_CHANNEL}|"\ + -e "s|%BABITCH_STATS_MIN_GAME_PLAYED%|${BABITCH_STATS_MIN_GAME_PLAYED}|"\ + prod/scripts/*.scripts.js + +case "$1" in + "prod") + service nginx start + ;; + "dev") + if [ ! -d "/var/www/dev" ] + then + echo "[Error] No dev volume mounted." + exit 1 + fi + cd /var/www/dev + /var/www/scripts/xvfb.sh start + /var/www/scripts/x11vnc.sh start + /bin/bash + ;; + "test") + if [ ! -d "/var/www/dev" ] + then + echo "[Error] No dev volume mounted." + exit 1 + fi + cd /var/www/dev + /var/www/scripts/xvfb.sh start + /var/www/scripts/x11vnc.sh start + /var/www/dev/node_modules/.bin/grunt test + exit $? + ;; +esac \ No newline at end of file diff --git a/docker/travis.sh b/docker/scripts/travis.sh similarity index 100% rename from docker/travis.sh rename to docker/scripts/travis.sh diff --git a/docker/x11vnc.sh b/docker/scripts/x11vnc.sh similarity index 100% rename from docker/x11vnc.sh rename to docker/scripts/x11vnc.sh diff --git a/docker/xvfb.sh b/docker/scripts/xvfb.sh similarity index 100% rename from docker/xvfb.sh rename to docker/scripts/xvfb.sh diff --git a/docker/starter.sh b/docker/starter.sh deleted file mode 100755 index 52c573c..0000000 --- a/docker/starter.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash - -case "$1" in - "prod") - service nginx start - ;; - "dev") - /var/www/docker/xvfb.sh start - /var/www/docker/x11vnc.sh start - service proftpd start - /bin/bash - ;; - "test") - /var/www/docker/xvfb.sh start - /var/www/docker/x11vnc.sh start - /var/www/node_modules/.bin/grunt test - exit $? - ;; -esac \ No newline at end of file From 3395b81299e20c0bea437f083d96795f0eaa0cba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Jourdin?= Date: Thu, 26 Jun 2014 23:27:12 +0200 Subject: [PATCH 28/28] Add shared volume + overridable constants --- .travis.yml | 2 +- docker/scripts/travis.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5cfea62..66e4352 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,4 +16,4 @@ install: - git clone git://github.com/jpetazzo/sekexe script: - - sekexe/run "`pwd`/docker/travis.sh `pwd`" + - sekexe/run "`pwd`/docker/scripts/travis.sh `pwd`" diff --git a/docker/scripts/travis.sh b/docker/scripts/travis.sh index 462b82c..c67c2bb 100755 --- a/docker/scripts/travis.sh +++ b/docker/scripts/travis.sh @@ -19,4 +19,4 @@ sleep 2 # Use docker docker build -t babitch_client_travis $1 -docker run --privileged -it --rm babitch_client_travis test \ No newline at end of file +docker run --privileged -it --rm -v $1:/var/www/dev babitch_client_travis test \ No newline at end of file