Skip to content

Commit 754da10

Browse files
chore: run dist with environment variables
1 parent 6d1d28d commit 754da10

File tree

7 files changed

+82
-1
lines changed

7 files changed

+82
-1
lines changed

apps/backoffice-v2/Dockerfile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,18 @@ CMD ["npm", "run", "dev", "--host"]
2222

2323
FROM nginx:stable-alpine as prod
2424

25+
WORKDIR /app
26+
2527
COPY --from=dev /app/dist /usr/share/nginx/html
2628

29+
COPY --from=dev /app/entrypoint.sh /app/entrypoint.sh
30+
2731
COPY example.nginx.conf /etc/nginx/conf.d/default.conf
2832

33+
RUN chmod a+x /app/entrypoint.sh;
34+
2935
EXPOSE 80
3036

37+
ENTRYPOINT [ "/app/entrypoint.sh" ]
38+
3139
CMD ["nginx", "-g", "daemon off;"]

apps/backoffice-v2/entrypoint.sh

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
#!/usr/bin/env sh
2+
3+
if [[ -z "$VITE_DOMAIN" ]]
4+
then
5+
VITE_DOMAIN="http://localhost:3000"
6+
fi
7+
8+
if [[ -z "$VITE_API_KEY" ]]
9+
then
10+
VITE_API_KEY="secret"
11+
fi
12+
13+
if [[ -z "$VITE_AUTH_ENABLED" ]]
14+
then
15+
VITE_AUTH_ENABLED=true
16+
fi
17+
18+
19+
if [[ -z "$VITE_MOCK_SERVER" ]]
20+
then
21+
VITE_MOCK_SERVER=false
22+
fi
23+
24+
if [[ -z "$VITE_POLLING_INTERVAL" ]]
25+
then
26+
VITE_POLLING_INTERVAL=10
27+
fi
28+
29+
if [[ -z "$VITE_ASSIGNMENT_POLLING_INTERVAL" ]]
30+
then
31+
VITE_ASSIGNMENT_POLLING_INTERVAL=5
32+
fi
33+
34+
if [[ -z "$VITE_FETCH_SIGNED_URL" ]]
35+
then
36+
VITE_FETCH_SIGNED_URL=false
37+
fi
38+
39+
cat << EOF > /usr/share/nginx/html/config.js
40+
globalThis.env = {
41+
VITE_API_URL: "$VITE_DOMAIN/api/v1/internal",
42+
VITE_API_KEY: "$VITE_API_KEY",
43+
VITE_AUTH_ENABLED: "$VITE_AUTH_ENABLED",
44+
VITE_MOCK_SERVER: "$VITE_MOCK_SERVER",
45+
VITE_POLLING_INTERVAL: "$VITE_POLLING_INTERVAL",
46+
VITE_ASSIGNMENT_POLLING_INTERVAL: "$VITE_ASSIGNMENT_POLLING_INTERVAL",
47+
VITE_FETCH_SIGNED_URL: "$VITE_FETCH_SIGNED_URL",
48+
VITE_ENVIRONMENT_NAME: "local",
49+
MODE: "production"
50+
}
51+
EOF
52+
53+
# Handle CMD command
54+
exec "$@"

apps/backoffice-v2/global.d.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
declare global {
2+
export var env: { [key: string]: any };
3+
}

apps/backoffice-v2/index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
<link rel="manifest" href="/manifest.webmanifest" />
99
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
1010
<title>Ballerine - Backoffice</title>
11+
<script type="text/javascript" src="/config.js"></script>
1112
<script>
1213
let cachedTheme = localStorage.getItem('theme');
1314
const themes = ['dark', 'light'];

apps/backoffice-v2/public/config.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
globalThis.env = {
2+
VITE_API_URL: import.meta.env.VITE_API_URL || 'http://google.com',
3+
VITE_KYB_DEFINITION_ID: import.meta.env.VITE_KYB_DEFINITION_ID || 'kyb_parent_kyc_session_example',
4+
VITE_API_KEY: import.meta.env.VITE_API_KEY || 'secret',
5+
VITE_ENVIRONMENT_NAME: import.meta.env.VITE_ENVIRONMENT_NAME || 'local',
6+
VITE_DEFAULT_EXAMPLE_TOKEN: import.meta.env.VITE_DEFAULT_EXAMPLE_TOKEN || '12345678-1234-1234-1234-123456789012',
7+
VITE_SENTRY_AUTH_TOKEN: import.meta.env.VITE_SENTRY_AUTH_TOKEN || '',
8+
VITE_SENTRY_DSN: import.meta.env.VITE_SENTRY_DSN || '',
9+
};

apps/backoffice-v2/src/common/env/env.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export const formatErrors = (errors: ZodFormattedError<Map<string, string>, stri
1010
.filter(Boolean);
1111
};
1212

13-
const _env = EnvSchema.safeParse(import.meta.env);
13+
const _env = EnvSchema.safeParse(globalThis.env);
1414

1515
// TypeScript complains with !env.success
1616
if (_env.success === false) {

apps/backoffice-v2/src/main.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import dayjs from 'dayjs';
1717
import advancedFormat from 'dayjs/plugin/advancedFormat';
1818
import { initializeMonitoring } from '@/initialize-monitoring/initialize-monitoring';
1919
import { initializeSessionRecording } from '@/initialize-session-recording/initialize-session-recording';
20+
import '../public/config.js?url';
2021

2122
initializeMonitoring();
2223

@@ -53,3 +54,8 @@ void prepare().then(() => {
5354
);
5455
}
5556
});
57+
58+
//@ts-ignore
59+
globalThis.env = globalThis.env || {
60+
API_URL: import.meta.env.VITE_API_URL,
61+
};

0 commit comments

Comments
 (0)