Apps: "Bash", "Docker" & etc.
В этой заметке описан один из этапов реализации поставленной в вышестоящей публикации задачи автоматизации процедур развёртывания тестовых стендов из docker-контейнеров.
Шаблон для создания демонстрационного web-приложения на "NodeJS":
# vi /usr/local/etc/devops/lib/bunch-nodejs-example-app.sh.snippet
#!/bin/bash
# This file contains the code snippet for the shell Bash v.4 (Bourne again shell).
# Файл содержит фрагмент кода для командного интерпретатора Bash v.4 (Bourne again shell).
cat << EOF > "${OPSROOT}/bunch/${SITENAME}/${NODEJS_APP_DIR}/package.json"
{
"name": "nodejs_example_app",
"description": "Node.js Example App on Docker",
"main": "example-app.js", "version": "1.0.0",
"author": "NSU, Andrey Narozhniy", "license": "ISC",
"dependencies": {
"express": "^4.17.1"
},
"scripts": {
"_start": "npm install && node example-app.js",
"start": "npm install && nodemon example-app.js"
}
}
EOF
cat << EOF | sed "s/\t/ /; s/^[ ]//" > "${OPSROOT}/bunch/${SITENAME}/${NODEJS_APP_DIR}/example-app.js"
var express = require('express');
var app = express();
app.get('/', function(req, res){
res.send("\"${SITENAME}\" via NodeJS");
console.log('\nNodeJS is talking.');
});
app.listen(8000, '0.0.0.0');
EOF
# This file contains the code snippet for the shell Bash v.4 (Bourne again shell).
# Файл содержит фрагмент кода для командного интерпретатора Bash v.4 (Bourne again shell).
cat << EOF > "${OPSROOT}/bunch/${SITENAME}/${NODEJS_APP_DIR}/package.json"
{
"name": "nodejs_example_app",
"description": "Node.js Example App on Docker",
"main": "example-app.js", "version": "1.0.0",
"author": "NSU, Andrey Narozhniy", "license": "ISC",
"dependencies": {
"express": "^4.17.1"
},
"scripts": {
"_start": "npm install && node example-app.js",
"start": "npm install && nodemon example-app.js"
}
}
EOF
cat << EOF | sed "s/\t/ /; s/^[ ]//" > "${OPSROOT}/bunch/${SITENAME}/${NODEJS_APP_DIR}/example-app.js"
var express = require('express');
var app = express();
app.get('/', function(req, res){
res.send("\"${SITENAME}\" via NodeJS");
console.log('\nNodeJS is talking.');
});
app.listen(8000, '0.0.0.0');
EOF