File tree Expand file tree Collapse file tree 5 files changed +96
-4
lines changed Expand file tree Collapse file tree 5 files changed +96
-4
lines changed Original file line number Diff line number Diff line change 1+ services :
2+ frontend :
3+ build :
4+ context : frontend
5+ target : dev-envs
6+ ports :
7+ - 3000:3000
8+ stdin_open : true
9+ volumes :
10+ - /var/run/docker.sock:/var/run/docker.sock
11+ restart : always
12+ networks :
13+ - react-express
14+ depends_on :
15+ - backend
16+
17+ backend :
18+ restart : always
19+ build :
20+ context : backend
21+ target : dev-envs
22+ volumes :
23+ - /var/run/docker.sock:/var/run/docker.sock
24+ depends_on :
25+ - mongo
26+ networks :
27+ - express-mongo
28+ - react-express
29+ expose :
30+ - 3000
31+ mongo :
32+ container_name : mongo
33+ restart : always
34+ image : mongo:4.2.0
35+ volumes :
36+ - ./data:/data/db
37+ networks :
38+ - express-mongo
39+ expose :
40+ - 27017
41+ networks :
42+ react-express :
43+ express-mongo :
Original file line number Diff line number Diff line change 1- FROM node:lts-buster-slim
1+ # syntax=docker/dockerfile:1.4
2+
3+ FROM node:lts-buster-slim AS development
24
35# Create app directory
46WORKDIR /usr/src/app
@@ -12,3 +14,18 @@ COPY . /usr/src/app
1214EXPOSE 3000
1315
1416CMD [ "npm" , "run" , "dev" ]
17+
18+ FROM development as dev-envs
19+ RUN <<EOF
20+ apt-get update
21+ apt-get install -y --no-install-recommends git
22+ EOF
23+
24+ RUN <<EOF
25+ useradd -s /bin/bash -m vscode
26+ groupadd docker
27+ usermod -aG docker vscode
28+ EOF
29+ # install Docker tools (cli, buildx, compose)
30+ COPY --from=gloursdocker/docker / /
31+ CMD [ "npm" , "run" , "dev" ]
Original file line number Diff line number Diff line change 11services :
22 frontend :
3- build : frontend
3+ build :
4+ context : frontend
5+ target : development
46 ports :
57 - 3000:3000
68 stdin_open : true
@@ -17,7 +19,9 @@ services:
1719 backend :
1820 container_name : backend
1921 restart : always
20- build : backend
22+ build :
23+ context : backend
24+ target : development
2125 volumes :
2226 - ./backend:/usr/src/app
2327 - /usr/src/app/node_modules
Original file line number Diff line number Diff line change 1+ # syntax=docker/dockerfile:1.4
2+
13# Create image based on the official Node image from dockerhub
2- FROM node:lts-buster
4+ FROM node:lts-buster AS development
35
46# Create app directory
57WORKDIR /usr/src/app
@@ -22,3 +24,18 @@ EXPOSE 3000
2224
2325# Serve the app
2426CMD ["npm" , "start" ]
27+
28+ FROM development as dev-envs
29+ RUN <<EOF
30+ apt-get update
31+ apt-get install -y --no-install-recommends git
32+ EOF
33+
34+ RUN <<EOF
35+ useradd -s /bin/bash -m vscode
36+ groupadd docker
37+ usermod -aG docker vscode
38+ EOF
39+ # install Docker tools (cli, buildx, compose)
40+ COPY --from=gloursdocker/docker / /
41+ CMD [ "npm" , "start" ]
Original file line number Diff line number Diff line change @@ -97,3 +97,14 @@ Removing react-express-mysql_db_1 ... done
9797Removing network react-express-mysql_default
9898
9999```
100+
101+ ## Use with Docker Development Environments
102+
103+ You can use this sample with the Dev Environments feature of Docker Desktop.
104+
105+ ![ Screenshot of creating a Dev Environment in Docker Desktop] ( ../dev-envs.png )
106+
107+ To develop directly on the services inside containers, use the HTTPS Git url of the sample:
108+ ```
109+ https://github.com/docker/awesome-compose/tree/master/react-express-mongodb
110+ ```
You can’t perform that action at this time.
0 commit comments