Skip to content

Commit e080d4f

Browse files
Stefan WaltherStefan Walther
authored andcommitted
Initial working version
1 parent 3993629 commit e080d4f

File tree

13 files changed

+110
-14
lines changed

13 files changed

+110
-14
lines changed

README.md

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,28 @@
44
## Installation
55

66
```sh
7+
# Clone the directory
8+
$ git clone https://github.com/stefanwalther/boilerplate-typescript-rest-docker
9+
10+
# Switch to the cloned directory
11+
$ cd boilerplate-typescript-rest-docker
12+
13+
# Install dependencies (not needed if you only run the container)
714
$ npm install
815
```
916

10-
## Development
17+
## Development Workflow
1118

1219
Run the development environment
20+
```sh
21+
# omit --build if you don't want to re-build the container again and again
22+
$ docker-compose --f=./docker/dev.yml up --build
1323
```
14-
docker-compose --f ./docker/dev.yml up --build
15-
```
16-
1724

18-
The REST service is available at:
25+
The development environment contains the following:
26+
- A docker container called `rest-service` containing the REST server as defined in `./src`.
27+
- The REST services is exposed at `http://localhost:8000`.
28+
- Watcher: As soon as you make changes to the `./src` folder, the TypeScript files will be transpiled again and the server restarted.
29+
- Remote debugging enabled through port `5858`.
1930

20-
http://localhost:8000
31+
### Debugging in Webstorm

docker/ci.yml

Whitespace-only changes.

docker/dev.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,7 @@ services:
1010
command: "npm run start:dev"
1111
ports:
1212
- "8000:8000"
13+
# Debugger
1314
- "5858:5858"
15+
# Inspector
16+
- "9222:9222"

docker/rest-service/.env

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
PORT=8000

docker/rest-service/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ COPY package.json .
99
COPY tsconfig.json .
1010

1111
RUN npm install nodemon -g \
12-
&& npm install node-inspector -g \
12+
# && npm install node-inspector -g \
1313
&& npm install
1414

1515
COPY ./src/ ./src/

package.json

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
{
2-
"name": "boilerplate-typescript-rest",
2+
"name": "boilerplate-typescript-rest-docker",
33
"version": "0.0.1",
4-
"description": "Boilerplate for a REST service using TypeScript.",
4+
"description": "Boilerplate for a REST service using TypeScript & Docker.",
55
"main": "index.js",
66
"scripts": {
77
"start": "npm run transpile && node ./src/index.js",
8-
"start:debug": "npm run transpile && node --debug ./src/index.js",
8+
"start:inspect": " --inspect=9222",
9+
"start:debug": "npm run transpile && node --debug=5858 ./src/index.js",
910
"start:dev": "nodemon --watch src -L --exec npm run start:debug",
1011
"transpile": "node ./node_modules/typescript/bin/tsc --listEmittedFiles",
1112
"test": "echo \"Error: no test specified\" && exit 1",
@@ -33,6 +34,7 @@
3334
"eslint-config-idiomatic": "^2.1.0",
3435
"mocha": "^3.1.2",
3536
"supertest": "^2.0.1",
37+
"supertest-as-promised": "^4.0.2",
3638
"ts-node": "^1.7.0",
3739
"typescript": "^2.0.9",
3840
"typescript-eslint-parser": "^1.0.0"
@@ -43,7 +45,11 @@
4345
"@types/express": "^4.0.33",
4446
"@types/mocha": "^2.2.32",
4547
"@types/node": "^6.0.46",
48+
"@types/supertest": "^1.1.31",
49+
"@types/supertest-as-promised": "^2.0.32",
4650
"body-parser": "^1.15.2",
47-
"express": "^4.14.0"
51+
"express": "^4.14.0",
52+
"install": "^0.8.2",
53+
"npm": "^3.10.9"
4854
}
4955
}

src/index.js

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/index.js.map

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
import { Server } from './server';
22

33
let serverInst = new Server();
4-
serverInst.start();
4+
serverInst.start();

src/server.js

Lines changed: 52 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)