Skip to content

Commit 4b960fa

Browse files
committed
Improved docker files
1 parent 6939d1a commit 4b960fa

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+1334
-84
lines changed

.dockerignore

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# compiled output
2+
.git
3+
*Dockerfile*
4+
*docker-compose*
5+
node_modules
6+
7+
kubernetes
8+
iac
9+
graphs
10+
coverage
11+
.circleci
12+
13+
# comment
14+
*/temp*
15+
*/*/temp*
16+
temp?

apps/gateway-admin/src/app.module.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ require('dotenv').config();
1818
path: '/graphql',
1919
context: ({ req, res }) => buildContext({ req, res }),
2020
serviceList: [
21-
{ name: 'auth', url: 'http://localhost:9900/graphql' },
22-
{ name: 'user', url: 'http://localhost:9000/graphql' },
23-
{ name: 'project', url: 'http://localhost:9100/graphql' },
24-
{ name: 'tenant', url: 'http://localhost:9200/graphql' },
25-
{ name: 'payment', url: 'http://localhost:9500/graphql' },
21+
{ name: 'auth', url: process.env.AUTH_ENDPOINT || 'http://localhost:9900/graphql' },
22+
{ name: 'user', url: process.env.USER_ENDPOINT || 'http://localhost:9000/graphql' },
23+
{ name: 'project', url: process.env.PROJECT_ENDPOINT || 'http://localhost:9100/graphql' },
24+
{ name: 'tenant', url: process.env.TENANT_ENDPOINT || 'http://localhost:9200/graphql' },
25+
{ name: 'payment', url: process.env.PAYMENT_ENDPOINT || 'http://localhost:9500/graphql' },
2626
// more services
2727
],
2828
buildService({ url }) {

apps/service-notification/src/email/email.service.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
import { Injectable, Logger } from '@nestjs/common';
22
import { SendGridService } from '@anchan828/nest-sendgrid';
3-
import { UserEntity } from '@graphqlcqrs/repository/entities';
4-
import { ConfigService } from '@graphqlcqrs/common/services/config.service';
53
import { MailData } from '@sendgrid/helpers/classes/mail';
64

75
@Injectable()

docker/development/docker-compose.yml

Lines changed: 317 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,317 @@
1+
version: "3.4"
2+
3+
services:
4+
services-auth:
5+
build:
6+
context: .
7+
dockerfile: docker/development/service-auth.Dockerfile
8+
image: ultimatebackend/service-auth:development
9+
restart: always
10+
ports:
11+
- 9900:9900
12+
healthcheck:
13+
test: curl --fail -s http://localhost:9900/ || exit 1
14+
interval: 1m30s
15+
timeout: 10s
16+
retries: 3
17+
environment:
18+
- PORT=9900
19+
- ES_POOL_MAX=
20+
- ES_POOL_MIN=
21+
- ES_STREAM_PROTOCOL=http
22+
- ES_HTTP_PORT=2113
23+
- ES_HTTP_PROTOCOL=http
24+
- ES_TCP_PASSWORD=changeit
25+
- ES_TCP_USERNAME=admin
26+
- ES_TCP_HOSTNAME=eventstore
27+
- ES_TCP_PORT=1113
28+
- ES_TCP_PROTOCOL=tcp
29+
- MONGO_DB_SERVER_URI=mongodb+srv://admin:[email protected]/
30+
- MONGODB_DB_OPTIONS=?retryWrites=true&w=majority
31+
- MONGODB_DB_NAME=service-auth
32+
depends_on:
33+
- eventstore
34+
links:
35+
- eventstore
36+
labels:
37+
kompose.service.type: clusterip
38+
kompose.image-pull-secret: "regcred"
39+
kompose.image-pull-policy: "Always"
40+
41+
services-project:
42+
build:
43+
context: .
44+
dockerfile: docker/development/service-project.Dockerfile
45+
image: ultimatebackend/service-project:development
46+
restart: always
47+
ports:
48+
- 9100:9100
49+
healthcheck:
50+
test: curl --fail -s http://localhost:9100/ || exit 1
51+
interval: 1m30s
52+
timeout: 10s
53+
retries: 3
54+
environment:
55+
- PORT=9100
56+
- ES_POOL_MAX=
57+
- ES_POOL_MIN=
58+
- ES_STREAM_PROTOCOL=http
59+
- ES_HTTP_PORT=2113
60+
- ES_HTTP_PROTOCOL=http
61+
- ES_TCP_PASSWORD=changeit
62+
- ES_TCP_USERNAME=admin
63+
- ES_TCP_HOSTNAME=eventstore
64+
- ES_TCP_PORT=1113
65+
- ES_TCP_PROTOCOL=tcp
66+
- MONGO_DB_SERVER_URI=mongodb+srv://admin:[email protected]/
67+
- MONGODB_DB_OPTIONS=?retryWrites=true&w=majority
68+
- MONGODB_DB_NAME=service-project
69+
- AUTH_SERVICE=http://services-auth:9900/graphql
70+
depends_on:
71+
- eventstore
72+
- services-auth
73+
- services-user
74+
links:
75+
- eventstore
76+
- services-auth
77+
labels:
78+
kompose.service.type: clusterip
79+
kompose.image-pull-secret: "regcred"
80+
kompose.image-pull-policy: "Always"
81+
82+
services-user:
83+
build:
84+
context: .
85+
dockerfile: docker/development/service-user.Dockerfile
86+
image: ultimatebackend/service-user:development
87+
restart: always
88+
ports:
89+
- 9000:9000
90+
healthcheck:
91+
test: curl --fail -s http://localhost:9000/ || exit 1
92+
interval: 1m30s
93+
timeout: 10s
94+
retries: 3
95+
environment:
96+
- PORT=9000
97+
- ES_POOL_MAX=
98+
- ES_POOL_MIN=
99+
- ES_STREAM_PROTOCOL=http
100+
- ES_HTTP_PORT=2113
101+
- ES_HTTP_PROTOCOL=http
102+
- ES_TCP_PASSWORD=changeit
103+
- ES_TCP_USERNAME=admin
104+
- ES_TCP_HOSTNAME=eventstore
105+
- ES_TCP_PORT=1113
106+
- ES_TCP_PROTOCOL=tcp
107+
- MONGO_DB_SERVER_URI=mongodb+srv://admin:[email protected]/
108+
- MONGODB_DB_OPTIONS=?retryWrites=true&w=majority
109+
- MONGODB_DB_NAME=service-user
110+
- AUTH_SERVICE=http://services-auth:9900/graphql
111+
depends_on:
112+
- eventstore
113+
- services-auth
114+
links:
115+
- eventstore
116+
- services-auth
117+
labels:
118+
kompose.service.type: clusterip
119+
kompose.image-pull-secret: "regcred"
120+
kompose.image-pull-policy: "Always"
121+
122+
services-notification:
123+
build:
124+
context: .
125+
dockerfile: docker/development/service-notification.Dockerfile
126+
image: ultimatebackend/service-notification:development
127+
restart: always
128+
ports:
129+
- 9400:9400
130+
healthcheck:
131+
test: curl --fail -s http://localhost:9400/ || exit 1
132+
interval: 1m30s
133+
timeout: 10s
134+
retries: 3
135+
environment:
136+
- PORT=9400
137+
- ES_POOL_MAX=
138+
- ES_POOL_MIN=
139+
- ES_STREAM_PROTOCOL=http
140+
- ES_HTTP_PORT=2113
141+
- ES_HTTP_PROTOCOL=http
142+
- ES_TCP_PASSWORD=changeit
143+
- ES_TCP_USERNAME=admin
144+
- ES_TCP_HOSTNAME=eventstore
145+
- ES_TCP_PORT=1113
146+
- ES_TCP_PROTOCOL=tcp
147+
- MONGO_DB_SERVER_URI=mongodb+srv://admin:[email protected]/
148+
- MONGODB_DB_OPTIONS=?retryWrites=true&w=majority
149+
- MONGODB_DB_NAME=service-notification
150+
- AUTH_SERVICE=http://services-auth:9900/graphql
151+
depends_on:
152+
- eventstore
153+
- services-auth
154+
links:
155+
- eventstore
156+
- services-auth
157+
labels:
158+
kompose.service.type: clusterip
159+
kompose.image-pull-secret: "regcred"
160+
kompose.image-pull-policy: "Always"
161+
162+
services-tenant:
163+
build:
164+
context: .
165+
dockerfile: docker/development/service-tenant.Dockerfile
166+
image: ultimatebackend/service-tenant:development
167+
restart: always
168+
ports:
169+
- 9200:9200
170+
healthcheck:
171+
test: curl --fail -s http://localhost:9200/ || exit 1
172+
interval: 1m30s
173+
timeout: 10s
174+
retries: 3
175+
environment:
176+
- PORT=9200
177+
- ES_POOL_MAX=
178+
- ES_POOL_MIN=
179+
- ES_STREAM_PROTOCOL=http
180+
- ES_HTTP_PORT=2113
181+
- ES_HTTP_PROTOCOL=http
182+
- ES_TCP_PASSWORD=changeit
183+
- ES_TCP_USERNAME=admin
184+
- ES_TCP_HOSTNAME=eventstore
185+
- ES_TCP_PORT=1113
186+
- ES_TCP_PROTOCOL=tcp
187+
- MONGO_DB_SERVER_URI=mongodb+srv://admin:[email protected]/
188+
- MONGODB_DB_OPTIONS=?retryWrites=true&w=majority
189+
- MONGODB_DB_NAME=service-tenant
190+
- AUTH_SERVICE=http://services-auth:9900/graphql
191+
depends_on:
192+
- eventstore
193+
- services-auth
194+
links:
195+
- eventstore
196+
- services-auth
197+
labels:
198+
kompose.service.type: clusterip
199+
kompose.image-pull-secret: "regcred"
200+
kompose.image-pull-policy: "Always"
201+
202+
services-payment:
203+
build:
204+
context: .
205+
dockerfile: docker/development/service-payment.Dockerfile
206+
image: ultimatebackend/service-payment:development
207+
restart: always
208+
ports:
209+
- 9300:9300
210+
healthcheck:
211+
test: curl --fail -s http://localhost:9300/ || exit 1
212+
interval: 1m30s
213+
timeout: 10s
214+
retries: 3
215+
environment:
216+
- PORT=9300
217+
- ES_POOL_MAX=
218+
- ES_POOL_MIN=
219+
- ES_STREAM_PROTOCOL=http
220+
- ES_HTTP_PORT=2113
221+
- ES_HTTP_PROTOCOL=http
222+
- ES_TCP_PASSWORD=changeit
223+
- ES_TCP_USERNAME=admin
224+
- ES_TCP_HOSTNAME=eventstore
225+
- ES_TCP_PORT=1113
226+
- ES_TCP_PROTOCOL=tcp
227+
- MONGO_DB_SERVER_URI=mongodb+srv://admin:[email protected]/
228+
- MONGODB_DB_OPTIONS=?retryWrites=true&w=majority
229+
- MONGODB_DB_NAME=service-payment
230+
- AUTH_SERVICE=http://services-auth:9900/graphql
231+
depends_on:
232+
- eventstore
233+
- services-tenant
234+
- services-auth
235+
- services-user
236+
links:
237+
- eventstore
238+
- services-auth
239+
labels:
240+
kompose.service.type: clusterip
241+
kompose.image-pull-secret: "regcred"
242+
kompose.image-pull-policy: "Always"
243+
244+
gateway-admin:
245+
build:
246+
context: .
247+
dockerfile: docker/development/gateway-admin.Dockerfile
248+
image: ultimatebackend/gateway-admin:development
249+
restart: always
250+
ports:
251+
- 4000:4000
252+
environment:
253+
- PORT=4000
254+
- PROJECT_ENDPOINT=http://services-project:9100/graphql
255+
- PROJECT_PATH=project
256+
- AUTH_ENDPOINT=http://services-auth:9900/graphql
257+
- AUTH_PATH=auth
258+
- USER_ENDPOINT=http://services-user:9000/graphql
259+
- USER_PATH=user
260+
261+
depends_on:
262+
- services-auth
263+
- services-project
264+
- services-user
265+
- services-tenant
266+
- services-notification
267+
- services-payment
268+
links:
269+
- services-auth
270+
- services-project
271+
- services-user
272+
labels:
273+
kompose.service.type: loadbalancer
274+
kompose.service.expose: "true"
275+
kompose.image-pull-secret: "regcred"
276+
kompose.image-pull-policy: "Always"
277+
278+
gateway-client:
279+
build:
280+
context: .
281+
dockerfile: docker/development/gateway-client.Dockerfile
282+
image: ultimatebackend/gateway-client:development
283+
restart: always
284+
ports:
285+
- 5000:5000
286+
environment:
287+
- PORT=5000
288+
- PROJECT_ENDPOINT=http://services-project:9100/graphql
289+
- AUTH_ENDPOINT=http://services-auth:9900/graphql
290+
- USER_ENDPOINT=http://services-user:9000/graphql
291+
- PAYMENT_ENDPOINT=http://services-project:9300/graphql
292+
- TENANT_ENDPOINT=http://services-auth:9200/graphql
293+
depends_on:
294+
- services-auth
295+
- services-project
296+
- services-user
297+
- services-tenant
298+
- services-notification
299+
- services-payment
300+
links:
301+
- services-project
302+
labels:
303+
kompose.service.type: loadbalancer
304+
kompose.service.expose: "true"
305+
kompose.image-pull-secret: "regcred"
306+
kompose.image-pull-policy: "Always"
307+
308+
eventstore:
309+
container_name: eventstore-node
310+
ports:
311+
- '2113:2113'
312+
- '1113:1113'
313+
image: eventstore/eventstore
314+
labels:
315+
kompose.service.type: loadbalancer
316+
kompose.service.expose: "true"
317+
kompose.image-pull-secret: "regcred"
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
FROM node:stretch
2+
# set our node environment, either development or production
3+
# defaults to production, compose overrides this to development on build and run
4+
ARG NODE_ENV=development
5+
ENV NODE_ENV $NODE_ENV
6+
7+
RUN mkdir -p /usr/src/app
8+
WORKDIR /usr/src/app
9+
10+
COPY package.json /usr/src/app/
11+
12+
RUN npm install -g @nestjs/cli
13+
RUN npm install rimraf -g
14+
RUN npm install -g npx
15+
RUN yarn
16+
17+
COPY . /usr/src/app
18+
19+
# Build production files
20+
RUN yarn build gateway-admin
21+
22+
EXPOSE 4000
23+
24+
CMD ["node", "dist/apps/gateway-admin/main.js"]

0 commit comments

Comments
 (0)