diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..93f1361 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +node_modules +npm-debug.log diff --git a/.gsk/docs/docker.md b/.gsk/docs/docker.md index c69e915..4f65794 100644 --- a/.gsk/docs/docker.md +++ b/.gsk/docs/docker.md @@ -10,84 +10,66 @@ Merci de suivre les instructions sur [le site officiel](https://www.docker.com/p Création de l’image en locale ------------------------------------------------------------------------------- -> **NOTE :** _À terme, - il est prévu que l’image soit disponible sur le Docker hub._ +> **NOTE :** _l’image étant disponible sur le Docker hub, cette étape n’est pas necéssaire à part si vous voulez votre propre image liée à votre projet._ ```bash docker build -t cleverage/garden-starter-kit . ``` - Simplement avoir un aperçu de G.S.K. : ------------------------------------------------------------------------------- Vous pouvez avoir un aperçu de G.S.K. avec la commande suivante : ```bash -$ docker run -it --rm -p 8000:8000 cleverage/garden-starter-kit +$ docker-compose up ``` Il vous suffit ensuite de vous rendre sur http://localhost:8000 -Utilisation sur votre projet : -------------------------------------------------------------------------------- - -Récupérer le G.S.K. : - +Puis pour tout arreter : ```bash -$ cd ~/monProjet -$ git clone git@github.com:cleverage/garden-starter-kit.git . -$ rm -rf .git +$ docker-compose down ``` -### Methode 1 : Avec un conteneur actif en permanence : +Utilisation sur votre projet : +------------------------------------------------------------------------------- -Créer et démarrer un nouveau conteneur : +Créer et démarrer le conteneur : ```bash -$ docker run -d --name myProject -v "$PWD":/usr/src/app -p 8000:8000 -p 3001:3001 cleverage/garden-starter-kit tail -f /dev/null +$ docker-compose up ``` -Ou alors pour travailler ensuite directement dans le container : +Ou avec l’option `-d` pour qu’il tourne en tâche de fond : ```bash -$ docker run -it --name myProject -v "$PWD":/usr/src/app -p 8000:8000 -p 3001:3001 cleverage/garden-starter-kit bash +$ docker-compose up -d ``` -Vous pouvez ensuite lancer vos commandes avec `docker exec -it myProject [my command]`, par exemple : +À sa création le conteneur Docker lance un `npm install` puis un `gulp build` et un `gulp connect` -```bash -$ docker exec -it myProject npm install -$ docker exec -it myProject bundle install -$ docker exec -it myProject gulp live -$ docker exec -it myProject bash -``` - -Pour arreter et redémarrer le conteneur : +Vous pouvez ensuite lancer d’autres commandes comme ceci : ```bash -docker stop myProject -docker start myProject +$ docker-compose exec gsk [ma commande] ``` -Pour supprimer le conteneur : +Exemples : ```bash -docker down myProject +$ docker-compose exec gsk gulp watch +$ docker-compose exec gsk gulp html ``` -### Methode 2 : Sans conteneur actif en permanence : - -Pour lancer vos commandes : +Où travailler directement dans le conteneur : ```bash -$ docker run -ti --rm -v "$PWD":/usr/src/app [-p 8000:8000 -p 3001:3001] cleverage/garden-starter-kit [my command] +$ docker-compose exec gsk bash ``` -Par exemple : +Pour supprimer le conteneur : ```bash -$ docker run -ti --rm -v "$PWD":/usr/src/app cleverage/garden-starter-kit npm install -$ docker run -ti --rm -v "$PWD":/usr/src/app cleverage/garden-starter-kit bundle install -$ docker run -ti --rm -v "$PWD":/usr/src/app -p 8000:8000 -p 3001:3001 cleverage/garden-starter-kit gulp live +docker-compose down ``` diff --git a/Dockerfile b/Dockerfile index 525accb..561c18e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,15 +13,17 @@ RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* RUN mkdir -p /usr/src/app WORKDIR /usr/src/app -COPY . /usr/src/app -RUN npm install -# Run bundle command only if there is a gemfile available -RUN if [ -f "Gemfile" ]; then bundle install; fi +# Add an gsk user because bower doesn’t like being root +RUN adduser --disabled-password --gecos "" gsk && \ + echo "gsk ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers -# Add node_modules -ENV PATH "$PATH:/usr/src/app/node_modules/.bin" +RUN chown -R gsk:gsk /usr/src/app + +USER gsk + +ENV PATH ./node_modules/.bin:$PATH EXPOSE 8000 3001 -CMD ["gulp", "live"] +CMD ["npm", "install"] diff --git a/deploy.sh b/deploy.sh index 24e902f..182e596 100755 --- a/deploy.sh +++ b/deploy.sh @@ -1,8 +1,4 @@ #!/bin/bash -if [ -f Gemfile ]; then - bundle install --path .gems -fi - npm install gulp build -r diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..11f5e8a --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,10 @@ +version: '2' +services: + gsk: + image: cleverage/garden-starter-kit + volumes: + - "./:/usr/src/app" + ports: + - "8000:8000" + - "3001:3001" + command: ['bash', '-c', 'npm install && npm start'] diff --git a/package.json b/package.json index 38f7c9c..e9d2c01 100644 --- a/package.json +++ b/package.json @@ -3,14 +3,14 @@ "homepage": "https://github.com/cleverage/garden-starter-kit", "title": "Garden Starter Kit", "description": "Set de base pour les projets Garden statiques.", - "version": "2.0.0-beta9", + "version": "2.0.0", "license": "MIT", "repository": { "type": "git", "url": "https://github.com/cleverage/garden-starter-kit.git" }, "dependencies": { - "autoprefixer": "6.7.7", + "autoprefixer": "7.1.1", "babel-cli": "6.24.1", "babel-core": "6.25.0", "babel-eslint": "7.2.3", @@ -19,38 +19,38 @@ "babel-preset-es2015": "6.24.1", "del": "2.2.2", "expose-loader": "0.7.3", - "glob": "7.1.1", + "glob": "7.1.2", "gulp": "3.9.1", "gulp-compass": "2.1.0", "gulp-concat": "2.6.1", "gulp-if": "2.0.2", - "gulp-imagemin": "3.2.0", + "gulp-imagemin": "3.3.0", "gulp-less": "3.3.0", "gulp-plumber": "1.1.0", - "gulp-postcss": "6.4.0", + "gulp-postcss": "7.0.0", "gulp-sass": "3.1.0", "gulp-sourcemaps": "2.6.0", "gulp-stylus": "2.6.0", "gulp-svgstore": "6.1.0", - "gulp-uglify": "2.1.2", + "gulp-uglify": "3.0.0", "gulp-util": "3.0.8", "jquery": "3.2.1", "lazypipe": "1.0.1", - "node-sass": "4.5.2", + "node-sass": "4.5.3", "node-sass-import": "1.1.1", "merge-stream": "1.0.1", - "require-dir": "0.3.1", + "require-dir": "0.3.2", "run-sequence": "1.2.2", "slick-carousel": "1.6.0", "underscore": "1.8.3", "vinyl-buffer": "1.0.0", "vinyl-source-stream": "1.1.0", - "webpack": "3.0.0", + "webpack": "2.6.1", "webpack-stream": "3.2.0", - "yargs": "7.1.0" + "yargs": "8.0.1" }, "devDependencies": { - "browser-sync": "2.18.8", + "browser-sync": "2.18.12", "eslint": "3.19.0", "gulp-a11y": "0.1.2", "gulp-data": "1.2.1", @@ -59,7 +59,7 @@ "gulp-hb": "6.0.2", "gulp-hbs": "0.2.0", "gulp-help": "1.6.1", - "gulp-lesshint": "3.0.0", + "gulp-lesshint": "3.0.1", "gulp-markdown": "1.2.0", "gulp-newer": "1.3.0", "gulp-prompt": "0.2.0", @@ -68,12 +68,17 @@ "gulp-scss-lint": "0.4.0", "gulp-sftp": "0.1.5", "gulp-stylint": "4.0.0", - "gulp-svgstore": "6.1.0", "gulp-twig": "0.7.0", "kss": "3.0.0-beta.18", "nproxy": "stephane-tessier/nproxy#1.7.1", "sass-lint": "1.10.2" }, + "scripts":{ + "install": "if [ -f \"Gemfile\" ]; then bundle install --path=.gems; fi", + "post-install": "gulp build", + "start": "gulp connect", + "live": "gulp live" + }, "engines": { "node": ">= 5.0.3", "npm": ">= 3.5.4" diff --git a/readme.dist.md b/readme.dist.md index 53044cb..064e0a5 100644 --- a/readme.dist.md +++ b/readme.dist.md @@ -14,10 +14,11 @@ Prérequis ------------------------------------------------------------------------------- ## Avec Docker (recommandé) -Ce projet nécécite que ces outils soient installé sur votre machine. +Ce projet nécéssite que ces outils soient installé sur votre machine. * [Git](http://git-scm.com/) * [Docker](https://www.docker.com/products/docker) : Merci de suivre les instructions d’instalation sur le site officiel. +* [Docker Compose](https://docs.docker.com/compose/) : Normalement installé en même temps que Docker [Pour plus d’info sur l’usage de docker](.gsk/docs/docker.md). @@ -86,7 +87,7 @@ $ npm-do gulp live ``` -Innitialisez votre environement +Initialisez votre environement ------------------------------------------------------------------------------- ### Clôner ce dépôt avec Git @@ -100,24 +101,17 @@ $ git clone GIT_REPO_URL ### Initialisation de Docker -Si vous utilisez Docker lancer il faut créer l’image docker locale : +Si vous utilisez Docker, l’image est disponible sur le [Docker hub](https://hub.docker.com/r/cleverage/garden-starter-kit/). -```bash -$ docker build -t cleverage/garden-starter-kit . -``` - -> **NOTE :** _À terme, - il est prévu que l’image soit disponible sur le Docker hub._ - -Vous pouvez ensuite travailler dans cette image : +Il suffit donc de lancer la commande suivante : ```bash -$ docker run -it --name myProject -v "$PWD":/usr/src/app -p 8000:8000 -p 3001:3001 cleverage/garden-starter-kit bash +$ docker run -it --name myProject -v "$PWD":/usr/src/app -p 8000:8000 -p 3001:3001 cleverage/garden-starter-kit:v2.0.0 ``` -### Installation des dépendances du projet -Lors du démarrage de votre projet et à chaque fois que le dépôt est rapatrié en -local, exécutez les commandes suivantes : +Cette commande lance le container Docker puis l’installation des dépendances npm (et ruby s’il y en a) lors du premier usage. + +À chaque fois que le dépôt est rapatrié en local, exécutez les commandes suivantes : ```bash $ npm install diff --git a/readme.md b/readme.md index eb549e2..2d0e720 100644 --- a/readme.md +++ b/readme.md @@ -17,7 +17,7 @@ Créer un nouveau projet ------------------------------------------------------------------------------- Pour créer un nouveau projet, suivez simplement les instructions ci-après. -> **NOTE :** _Il s'agit ici des instructions manuelles à suivre. Cependant, à terme, +> **NOTE :** _Il s’agit ici des instructions manuelles à suivre. Cependant, à terme, il est prévu qu'un script d'installation soit disponible pour simplifier le démarage._ ## Initialisez votre projet @@ -38,7 +38,7 @@ $ rm -rf .git ``` Il ne vous reste plus qu’à initialiser le dépôt git de votre projet et commiter -le _starter kit_ que vous avez récupéré pour commencer votre projet : +le _starter kit_ que vous avez récupéré pour commencer votre projet : ```bash $ git init @@ -85,7 +85,7 @@ Une fois les étapes précédantes executées, vous n’êtes déjà plus sur le "homepage": "https://github.com/cleverage/garden-starter-kit", "title": "Garden Starter Kit", "description": "Set de base pour les projets Garden statiques.", - "version": "2.0.0-beta9", + "version": "2.0.0", "license" : "MIT", "repository": { "type": "git",