Skip to content

Commit

Permalink
Add Docker + API design scripts (#20)
Browse files Browse the repository at this point in the history
* Add Docker + API design scripts

* Add Docker + API design scripts

* Fix wront script file

* Lock dependncies + Fix unquoted strings

* Release 0.5.1: Dependent package versions added + Fix unquoted strings
  • Loading branch information
Ehbraheem committed May 21, 2020
1 parent 9e02b83 commit cf11dbd
Show file tree
Hide file tree
Showing 8 changed files with 47 additions and 11 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ctt/apig",
"version": "0.5.0",
"version": "0.5.1",
"description": "A crud-api microservice and endpoint generator",
"main": "bin/apig",
"bin": {
Expand Down
7 changes: 5 additions & 2 deletions scaffold/service/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ FROM node:12.16.3-alpine as ts-build
# Arguments
ARG NODE_ENV
ARG NPM_TOKEN
ARG SERVICE_PORT
ENV NODE_ENV=$NODE_ENV \
SERVICE_PORT=$SERVICE_PORT \
APP_DIR="/usr/src/{{{scaffold_docker_path}}}" \
Expand Down Expand Up @@ -48,7 +49,8 @@ FROM node:12.16.3-alpine as build
ENV APP_DIR=/usr/src/{{{scaffold_docker_path}}} \
YARN_CACHE="/tmp/ycache" \
NODE_ENV=$NODE_ENV \
NPM_TOKEN=$NPM_TOKEN
NPM_TOKEN=$NPM_TOKEN \
SERVICE_PORT=$SERVICE_PORT

RUN mkdir -p $APP_DIR
RUN mkdir -p $YARN_CACHE
Expand All @@ -73,9 +75,10 @@ FROM node:12.16.2-alpine

# Arguments
ARG NODE_ENV
ARG SERVICE_PORT

# Configuration
ENV SERVICE_PORT={{{scaffold_service_port}}} \
ENV SERVICE_PORT=$SERVICE_PORT \
SERVICE_USER={{{scaffold_server_name}}} \
SERVICE_USER_ID=1001 \
SERVICE_GROUP={{{scaffold_server_name}}} \
Expand Down
13 changes: 8 additions & 5 deletions scaffold/service/package.json.replace
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,16 @@
"clean": "rm -rf lib/*",
"clean:build": "yarn clean && yarn build",
"dev": "nodemon",
"doc": "scripts/doc.sh",
"doc": "scripts/doc.sh {{{scaffold_project_name}}}",
"doc:lint": "scripts/doc_lint.sh {{{scaffold_project_name}}}",
"dump": "ts-node -- src/persistence/mongoose/backup.ts",
"lint": "eslint 'src/**'",
"postinstall": "[ \"$NODE_ENV\" == production ] && exit 0; yarn clean:build",
"prepublish": "yarn clean:build",
"prettify:lib": "prettier --write 'lib/**'",
"build:docker": "scripts/docker-build.sh",
"docker:permission": "chmod -R +x scripts/*.sh",
"run:docker": "yarn docker:permission && yarn build:docker && scripts/docker-run.sh",
"pretest": "yarn lint",
"seed": "ts-node -- src/persistence/mongoose/seed.ts",
"start": "node lib/index.js",
Expand Down Expand Up @@ -51,10 +55,9 @@
"typescript": "3.8.3"
},
"dependencies": {
"@ctt/crud-api": "*",
"@ctt/service-utils": "*",
"@ctt/redis-client": "*",
"@stoplight/spectral": "5.3.0",
"@ctt/crud-api": "1.6.27",
"@ctt/service-utils": "1.3.9",
"@ctt/redis-client": "0.0.0-beta.4",
"convict": "4.3.2",
"dotenv": "6.0.0",
"hapi-auth-jwt2": "8.1.0",
Expand Down
7 changes: 7 additions & 0 deletions scaffold/service/scripts/doc-lint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/bash

API="$1";

[ $# -ne 1 ] && { echo "Usage: pass API service name as argument"; exit 1;}

npx spectral lint "doc/${API}.yaml";
9 changes: 9 additions & 0 deletions scaffold/service/scripts/doc.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/bin/bash

API="$1";

[ $# -ne 1 ] && { echo "Usage: pass API service name as argument"; exit 1;}

npx redoc-cli bundle "doc/${API}.yaml";
rm -f "doc/${API}.html" && mv redoc-static.html "doc/${API}.html";
exit 0;
10 changes: 10 additions & 0 deletions scaffold/service/scripts/docker-build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/sh

NODE_ENV=$1
NPM_TOKEN=$2
SERVICE_PORT={{{scaffold_service_port}}};
APP_NAME={{{scaffold_docker_path}}};


docker build -t "$APP_NAME" --build-arg NODE_ENV=$NODE_ENV --build-arg SERVICE_PORT=$SERVICE_PORT --build-arg NPM_TOKEN=$NPM_TOKEN .;
exit 0;
4 changes: 4 additions & 0 deletions scaffold/service/scripts/docker-run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/sh

docker run -p 4021:4021 {{{scaffold_docker_path}}}:latest;
exit 0;
6 changes: 3 additions & 3 deletions scaffold/service/src/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -115,13 +115,13 @@ export default (): Promise<Server> =>
auth: false,
tags: {},
info: {
title: {{{scaffold_project_name}}},
description: {{{scaffold_project_description}}},
title: '{{{scaffold_project_name}}}',
description: '{{{scaffold_project_description}}}',
version: '0.0.1',
},
},
swaggerUiOptions: {
title: {{{scaffold_project_name}}},
title: '{{{scaffold_project_name}}}',
path: '/docs',
authorization: false,
auth: false,
Expand Down

0 comments on commit cf11dbd

Please sign in to comment.