Skip to content

Commit 6ef597c

Browse files
committed
docker env config
1 parent 5bc0c03 commit 6ef597c

File tree

11 files changed

+70
-8
lines changed

11 files changed

+70
-8
lines changed

.env.example

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ VITE_API_BASE_URL=http://127.0.0.1:4242
88
VITE_KEYCLOAK_URL=http://localhost:8080/
99
VITE_KEYCLOAK_REALM=dev
1010
VITE_KEYCLOAK_CLIENT_ID=bff-dashboard
11+
VITE_API_MOCKING_ENABLED=false

Dockerfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ FROM nginx:1.27.5-alpine@sha256:65645c7bb6a0661892a8b03b89d0743208a18dd2f3f17a54
2121

2222
COPY --from=builder /app/dist /usr/share/nginx/html
2323

24+
COPY docker/entrypoint.d/ /docker-entrypoint.d/
25+
RUN chmod +x /docker-entrypoint.d/*.sh
26+
2427
COPY docker/nginx/snippets/proxy-params.conf /etc/nginx/snippets/proxy-params.conf
2528
# each time nginx is started it will perform variable substition in all template
2629
# files found in `/etc/nginx/templates/*.template`, and copy the results (without

docker-compose.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ services:
1313
- VITE_KEYCLOAK_URL=${VITE_KEYCLOAK_URL}
1414
- VITE_KEYCLOAK_REALM=${VITE_KEYCLOAK_REALM}
1515
- VITE_KEYCLOAK_CLIENT_ID=${VITE_KEYCLOAK_CLIENT_ID}
16+
- VITE_API_MOCKING_ENABLED=${VITE_API_MOCKING_ENABLED}
1617
healthcheck:
1718
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:80"]
1819
interval: 30s
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/usr/bin/env sh
2+
set -e
3+
4+
cat <<EOF > /usr/share/nginx/html/config.js
5+
window.__ENV__ = {
6+
VITE_API_BASE_URL: "${VITE_API_BASE_URL}",
7+
VITE_API_MOCKING_ENABLED: "${VITE_API_MOCKING_ENABLED}",
8+
VITE_KEYCLOAK_URL: "${VITE_KEYCLOAK_URL}",
9+
VITE_KEYCLOAK_REALM: "${VITE_KEYCLOAK_REALM}",
10+
VITE_KEYCLOAK_CLIENT_ID: "${VITE_KEYCLOAK_CLIENT_ID}",
11+
VITE_BITCR_DEV_INCLUDE_CROWDIN_IN_CONTEXT_TOOLING: "${VITE_BITCR_DEV_INCLUDE_CROWDIN_IN_CONTEXT_TOOLING}"
12+
}
13+
EOF

docker/nginx/templates/default.conf.template

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,10 @@ server {
4949
add_header Cache-Control "no-store";
5050
}
5151

52+
location = /config.js {
53+
add_header Cache-Control "no-store";
54+
}
55+
5256
location ~* \.(?:json)$ {
5357
expires 1d;
5458
add_header Cache-Control "public";

index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
</head>
1111
<body>
1212
<div id="root"></div>
13+
<script src="/config.js"></script>
1314
<script type="module" src="/src/main.tsx"></script>
1415
</body>
1516
</html>

public/config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
window.__ENV__ = window.__ENV__ || {}

src/constants/meta.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
import { env } from "@/lib/env"
2+
13
export default {
2-
devModeEnabled: import.meta.env.DEV,
3-
apiBaseUrl: import.meta.env.VITE_API_BASE_URL as string,
4-
apiMocksEnabled: import.meta.env.VITE_API_MOCKING_ENABLED === "true",
5-
crowdinInContextToolingEnabled: import.meta.env.VITE_BITCR_DEV_INCLUDE_CROWDIN_IN_CONTEXT_TOOLING === "true",
4+
devModeEnabled: env.devModeEnabled,
5+
apiBaseUrl: env.apiBaseUrl,
6+
apiMocksEnabled: env.apiMocksEnabled,
7+
crowdinInContextToolingEnabled: env.crowdinInContextToolingEnabled,
68
}

src/keycloak.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import Keycloak from "keycloak-js"
2+
import { env } from "@/lib/env"
23

34
const keycloak = new Keycloak({
4-
url: import.meta.env.VITE_KEYCLOAK_URL as string,
5-
realm: import.meta.env.VITE_KEYCLOAK_REALM as string,
6-
clientId: import.meta.env.VITE_KEYCLOAK_CLIENT_ID as string,
5+
url: env.keycloakUrl,
6+
realm: env.keycloakRealm,
7+
clientId: env.keycloakClientId,
78
})
89

910
export const initKeycloak = async (): Promise<boolean> => {

src/lib/api-client.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import { client as heyApiClient } from "@/generated/client/client.gen"
22
import * as sdk from "@/generated/client/sdk.gen"
3+
import { env } from "@/lib/env"
34
import keycloak from "../keycloak"
45

56
heyApiClient.setConfig({
6-
baseUrl: import.meta.env.VITE_API_BASE_URL as string,
7+
baseUrl: env.apiBaseUrl,
78
})
89

910
// Add the auth token interceptor

0 commit comments

Comments
 (0)