Move composed to a folder

This commit is contained in:
Guillem Hernandez Sola
2018-06-13 11:44:39 +02:00
parent 80460ccdc9
commit 75f631d93f
9 changed files with 0 additions and 0 deletions

6
compose/Dockerfile Executable file
View File

@@ -0,0 +1,6 @@
FROM node:4.6
WORKDIR /app
ADD . /app
RUN npm install
EXPOSE 3000
CMD npm start

20
compose/docker-compose.yml Executable file
View File

@@ -0,0 +1,20 @@
web:
build: .
command: node index-db.js
ports:
- "3000:3000"
links:
- db
environment:
MYSQL_DATABASE: myapp
MYSQL_USER: myapp
MYSQL_PASSWORD: mysecurepass
MYSQL_HOST: db
db:
image: orchardup/mysql
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: myapp
MYSQL_USER: myapp
MYSQL_PASSWORD: mysecurepass

35
compose/index-db.js Executable file
View File

@@ -0,0 +1,35 @@
var express = require('express');
var app = express();
var mysql = require("mysql");
var con = mysql.createConnection({ host: process.env.MYSQL_HOST, user: process.env.MYSQL_USER, password: process.env.MYSQL_PASSWORD, database: process.env.MYSQL_DATABASE});
// mysql code
con.connect(function(err){
if(err){
console.log('Error connecting to db: ', err);
return;
}
console.log('Connection to db established');
con.query('CREATE TABLE IF NOT EXISTS visits (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, ts BIGINT)',function(err) {
if(err) throw err;
});
});
// Request handling
app.get('/', function (req, res) {
// create table if not exist
con.query('INSERT INTO visits (ts) values (?)', Date.now(),function(err, dbRes) {
if(err) throw err;
res.send('Hello World! You are visitor number '+dbRes.insertId);
});
});
// server
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});

13
compose/index.js Executable file
View File

@@ -0,0 +1,13 @@
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello World!');
});
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});

19
compose/misc/Jenkinsfile vendored Executable file
View File

@@ -0,0 +1,19 @@
node {
def commit_id
stage('Preparation') {
checkout scm
sh "git rev-parse --short HEAD > .git/commit-id"
commit_id = readFile('.git/commit-id').trim()
}
stage('test') {
nodejs(nodeJSInstallationName: 'nodejs') {
sh 'npm install --only=dev'
sh 'npm test'
}
}
stage('docker build/push') {
docker.withRegistry('https://index.docker.io/v1/', 'dockerhub') {
def app = docker.build("wardviaene/docker-nodejs-demo:${commit_id}", '.').push()
}
}
}

31
compose/misc/Jenkinsfile.v2 Executable file
View File

@@ -0,0 +1,31 @@
node {
def commit_id
stage('Preparation') {
checkout scm
sh "git rev-parse --short HEAD > .git/commit-id"
commit_id = readFile('.git/commit-id').trim()
}
stage('test') {
def myTestContainer = docker.image('node:4.6')
myTestContainer.pull()
myTestContainer.inside {
sh 'npm install --only=dev'
sh 'npm test'
}
}
stage('test with a DB') {
def mysql = docker.image('mysql').run("-e MYSQL_ALLOW_EMPTY_PASSWORD=yes")
def myTestContainer = docker.image('node:4.6')
myTestContainer.pull()
myTestContainer.inside("--link ${mysql.id}:mysql") { // using linking, mysql will be available at host: mysql, port: 3306
sh 'npm install --only=dev'
sh 'npm test'
}
mysql.stop()
}
stage('docker build/push') {
docker.withRegistry('https://index.docker.io/v1/', 'dockerhub') {
def app = docker.build("wardviaene/docker-nodejs-demo:${commit_id}", '.').push()
}
}
}

7
compose/misc/Vagrantfile vendored Executable file
View File

@@ -0,0 +1,7 @@
Vagrant.configure(2) do |config|
config.vm.define "docker" do |docker|
docker.vm.box = "ubuntu/trusty64"
docker.vm.network "private_network", ip: "192.168.0.249"
docker.vm.hostname = "docker.example.com"
end
end

19
compose/package.json Executable file
View File

@@ -0,0 +1,19 @@
{
"name": "myapp",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node index.js",
"test": "mocha"
},
"engines": {
"node": "^4.6.1"
},
"dependencies": {
"express": "^4.14.0",
"mysql": "^2.10.2"
},
"devDependencies": {
"mocha": "^3.4.2"
}
}

8
compose/test/test.js Executable file
View File

@@ -0,0 +1,8 @@
var assert = require('assert');
describe('Array', function() {
describe('#indexOf()', function() {
it('should return -1 when the value is not present', function() {
assert.equal(-1, [1,2,3].indexOf(4));
});
});
});