-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
165 lines (157 loc) · 6.25 KB
/
docker-compose.yml
File metadata and controls
165 lines (157 loc) · 6.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
version: "3.7"
networks:
default:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/16
services:
sql.data:
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password
environment:
MYSQL_ROOT_HOST: "%"
MYSQL_ALLOW_EMPTY_PASSWORD: "true"
image: mysql/mysql-server:latest
ports:
- "3306:3306"
networks:
- default
restart: always
volumes:
- ./docker/provision/mysql/init:/docker-entrypoint-initdb.d
rabbitmq.data:
image: rabbitmq:3-management
environment:
RABBITMQ_DEFAULT_USER: ${LIFECMS_RABBITMQ_USERNAME}
RABBITMQ_DEFAULT_PASS: ${LIFECMS_RABBITMQ_PASSWORD}
ports:
- 5672:5672
- 15672:15672
volumes:
- ./docker/provision/rabbitmq/enabled_plugins:/etc/rabbitmq/enabled_plugins
identity.api:
image: lifecms/identity.api:latest
entrypoint: /bin/sh -c "waitforit.sh sql.data:3306 -- dotnet /app/Identity.API.dll"
ports:
- "5002:80"
environment:
SQL_DB_HOST: sql.data
ConnectionStrings__LifeCMSIdentity: Server=sql.data;Database=lifecms_identity;Uid=lifecms_user;Password=lifecms_pass;AllowUserVariables=True;
ConnectionStrings__LifeCMSIdentityServer: Server=sql.data;Database=lifecms_identity_server;Uid=lifecms_user;Password=lifecms_pass;AllowUserVariables=True;
IdentityServerAuthentication__Authority: ${LIFECMS_VHOST_IDENTITY}
ApiResources_0_Name: WebApi
ApiResources_0_Scopes_0_Name: post:read
ApiResources_0_Scopes_0_DisplayName: "Read access to the Post resource"
Clients__WebApiClient__AllowedCorsOrigins__0: http://${LIFECMS_VHOST_WEBSPA}
Clients__WebApiClient__AllowedScopes__0: post:read
Clients__WebApiClient__ClientId: WebApiClient
Clients__WebApiClient__ClientName: WebApiClient
Clients__WebApiClient__PostLogoutRedirectUris__0: http://${LIFECMS_VHOST_WEBSPA}/signout-callback-oidc
Clients__WebApiClient__RedirectUris__0: http://${LIFECMS_VHOST_WEBSPA}/session/oauth_callback
Clients__WebApiClient__RequireConsent: "false"
Clients__WebApiClient__RequireClientSecret: "false"
Certificates__SigningCredential: ${LIFECMS_CERTIFICATE_SIGNING_CREDENTIAL}
EventBus__HostName: rabbitmq.data
EventBus__Username: ${LIFECMS_RABBITMQ_USERNAME}
EventBus__Password: ${LIFECMS_RABBITMQ_PASSWORD}
EventBus__QueueName: ${LIFECMS_EVENTBUS_QUEUENAME}
ApiHost__Identity: http://${LIFECMS_VHOST_IDENTITY}
Host__WebSpa: http://${LIFECMS_VHOST_WEBSPA}
VIRTUAL_HOST: ${LIFECMS_VHOST_IDENTITY}
VIRTUAL_PORT: 80
depends_on:
- sql.data
networks:
- default
volumes:
- type: bind
source: ./docker/waitforit.sh
target: /usr/local/bin/waitforit.sh
email.api:
image: lifecms/email.api:latest
entrypoint: /bin/sh -c "waitforit.sh rabbitmq.data:5672 -- dotnet /app/Email.API.dll"
ports:
- "5003:80"
environment:
VIRTUAL_HOST: ${LIFECMS_VHOST_EMAIL}
VIRTUAL_PORT: 80
EventBus__HostName: rabbitmq.data
EventBus__Username: ${LIFECMS_RABBITMQ_USERNAME}
EventBus__Password: ${LIFECMS_RABBITMQ_PASSWORD}
EventBus__QueueName: ${LIFECMS_EVENTBUS_QUEUENAME}
Email__Provider: ${LIFECMS_EMAIL_PROVIDER}
Email__Smtp__Host: ${LIFECMS_EMAIL_SMTP_HOST}
Email__Smtp__Port: ${LIFECMS_EMAIL_SMTP_PORT}
Email__SendGrid__ApiKey: "${LIFECMS_EMAIL_SENDGRID_APIKEY}"
Email__SendGrid__From__EmailAddress: "${LIFECMS_EMAIL_SENDGRID_FROM_EMAIL}"
Email__SendGrid__From__Name: "${LIFECMS_EMAIL_SENDGRID_FROM_NAME}"
Identity__Email__FromEmailAddress: "${LIFECMS_IDENTITY_EMAIL_FROM_EMAIL_ADDRESS}"
networks:
- default
depends_on:
- rabbitmq.data
volumes:
- type: bind
source: ./docker/waitforit.sh
target: /usr/local/bin/waitforit.sh
contentcreation.api:
image: lifecms/contentcreation.api:latest
entrypoint: /bin/sh -c "waitforit.sh sql.data:3306 -- dotnet /app/ContentCreation.API.dll"
ports:
- "5001:80"
environment:
SQL_DB_HOST: sql.data
VIRTUAL_HOST: ${LIFECMS_VHOST_CONTENTCREATION}
EventBus__HostName: rabbitmq.data
EventBus__Username: ${LIFECMS_RABBITMQ_USERNAME}
EventBus__Password: ${LIFECMS_RABBITMQ_PASSWORD}
EventBus__QueueName: ${LIFECMS_EVENTBUS_QUEUENAME}
Cors__Websocket__AllowedOrigins__0: ${LIFECMS_CORS_WEBSOCKET_ALLOWED_ORIGIN}
IdentityServerAuthentication__ApiName: "WebApi"
IdentityServerAuthentication__RequireHttpsMetadata: "false"
IdentityServerAuthentication__Authority: ${LIFECMS_IDENTITY_SERVER_AUTHORITY}
ConnectionStrings__LifeCMS: Server=sql.data;Database=lifecms_production;Uid=lifecms_user;Password=lifecms_pass;AllowUserVariables=True;
Certificates__SigningCredential: ${LIFECMS_CERTIFICATE_SIGNING_CREDENTIAL}
ContentCreation__Email__FromEmailAddress: "${LIFECMS_CONTENTCREATION_EMAIL_FROM_EMAIL_ADDRESS}"
Host__WebSpa: http://${LIFECMS_VHOST_WEBSPA}
VIRTUAL_PORT: 80
depends_on:
- sql.data
extra_hosts:
- "${LIFECMS_VHOST_IDENTITY}:172.20.0.200"
networks:
- default
volumes:
- type: bind
source: ./docker/waitforit.sh
target: /usr/local/bin/waitforit.sh
web.webspa:
image: lifecms/web-spa:latest
ports:
- "5000:80"
volumes:
- ./docker:/usr/local/bin/docker
environment:
REACT_APP_RUNTIME_API_HOST: ${LIFECMS_ORIGIN_CONTENTCREATION}/api
REACT_APP_RUNTIME_AUTHORITY: ${LIFECMS_IDENTITY_SERVER_AUTHORITY}
REACT_APP_RUNTIME_CLIENT_ID: WebApiClient
REACT_APP_RUNTIME_POST_LOGOUT_REDIRECT_URI: ${LIFECMS_ORIGIN_WEBSPA}
REACT_APP_RUNTIME_REDIRECT_URI: ${LIFECMS_ORIGIN_WEBSPA}/session/oauth_callback
REACT_APP_RUNTIME_RESPONSE_TYPE: code
REACT_APP_RUNTIME_SCOPE: post:read
REACT_APP_RUNTIME_WEBSOCKET_HOST: ${LIFECMS_ORIGIN_CONTENTCREATION}/services/websocket
VIRTUAL_HOST: ${LIFECMS_VHOST_WEBSPA}
VIRTUAL_PORT: 80
networks:
- default
nginx-proxy:
container_name: proxy
image: jwilder/nginx-proxy
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
networks:
default:
ipv4_address: 172.20.0.200