Skip to content

Commit 5abb564

Browse files
authored
Merge pull request #10 from AlokTakshak/development
Development inside Docker
2 parents f1545be + 77596db commit 5abb564

File tree

8 files changed

+60
-1
lines changed

8 files changed

+60
-1
lines changed

README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ demo-app
3333
├── .eslintignore
3434
├── .prettierrc
3535
├── .prettierignore
36+
├── docker
37+
│ ├── dev.js
38+
│ ├── docker-compose.yml
39+
│ └── Dockerfile.dev
3640
├── public
3741
│ ├── favicon.ico
3842
│ ├── index.html
@@ -64,6 +68,10 @@ demo-app
6468
├── .eslintignore
6569
├── .prettierrc
6670
├── .prettierignore
71+
├── docker
72+
│ ├── dev.js
73+
│ ├── docker-compose.yml
74+
│ └── Dockerfile.dev
6775
├── public
6876
│   ├── favicon.ico
6977
│   ├── index.html
@@ -100,6 +108,12 @@ before running this first run `npm run build`.
100108
Start the development server on default port `8080`.<br>
101109
Starts server in hot mode but doesn't preserve state of component if any while reloading.
102110

111+
### `npm run docker:dev`
112+
113+
Start the development server inside the docker container.<br>
114+
Maps machines port `8080` to `docker` container port `8080`.<br>
115+
Helpful in case you want to do development inside container keeping the environment same for everyone, removes the need for changing node version for different applications.
116+
103117
### `npm run dev:hot`
104118

105119
Start the development server on default port `8080`.<br>

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "create-react-webpack",
3-
"version": "0.0.9",
3+
"version": "0.1.0",
44
"description": "create-react-webpack ",
55
"main": "scripts/create.js",
66
"bin": {

template/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,12 @@ Starts server in hot mode but doesn't preserve state of component if any while r
2828
Start the development server on default port `8080`.<br>
2929
Starts server in hot mode preserves state of component also if any while applying hot load patch.
3030

31+
### `npm run docker:dev`
32+
33+
Start the development server inside the docker container.<br>
34+
Maps machines port `8080` to `docker` container port `8080`.<br>
35+
Helpful in case you want to do development inside container keeping the environment same for everyone, removes the need for changing node version for different applications.
36+
3137
### `npm test`
3238

3339
Launches Test Runner in the intreactive manner.

template/docker/Dockerfile.dev

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#base image
2+
FROM node:alpine
3+
4+
#working directory
5+
WORKDIR /app
6+
7+
#copy package
8+
COPY package.json .
9+
10+
#install dependencies
11+
RUN npm install
12+
13+
#copy rest of source
14+
COPY . .
15+
16+
CMD ["npm","run","dev:hot"]

template/docker/dev.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
const Child_Process = require("child_process");
2+
3+
var args = process.argv.splice(2);
4+
5+
Child_Process.execSync(
6+
`docker-compose --file docker/docker-compose.yml up ${args}`,
7+
{
8+
stdio: "inherit"
9+
}
10+
);

template/docker/docker-compose.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
version: "3"
2+
services:
3+
web:
4+
build:
5+
context: ../
6+
dockerfile: ./docker/Dockerfile.dev
7+
ports:
8+
- "8080:8080"
9+
volumes:
10+
- /app/node_modules
11+
- ../:/app

template/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
"build": "webpack --config webpack.config.prod.js",
88
"dev": "webpack-dev-server --config webpack.config.dev.js",
99
"dev:hot": "npm run dev -- --hot",
10+
"docker:dev": "node docker/dev.js",
1011
"test": "jest",
1112
"format": "pretty-quick",
1213
"lint": "eslint ./"

template/webpack.config.dev.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ module.exports = merge(baseConfig, {
88
devServer: {
99
contentBase: path.join(__dirname, "public"),
1010
compress: true,
11+
host: "0.0.0.0",
1112
open: true,
1213
port: process.env.PORT,
1314
publicPath: "/"

0 commit comments

Comments
 (0)