| 
1 |  | -# Use an official Node.js runtime as a parent image  | 
2 | 1 | FROM node:slim  | 
3 | 2 | 
 
  | 
4 |  | -# Define default values for environment variables  | 
5 |  | -ARG APP_TITLE="STAC Manager"  | 
6 |  | -ARG APP_DESCRIPTION="A web application for managing STAC catalogs"  | 
7 |  | -ARG REACT_APP_STAC_API="https://earth-search.aws.element84.com/v0"  | 
8 |  | -ARG REACT_APP_STAC_BROWSER="https://radiantearth.github.io/stac-browser"  | 
9 |  | -ARG PUBLIC_URL="http://127.0.0.1:8080"  | 
10 |  | -ENV REACT_APP_KEYCLOAK_URL=  | 
11 |  | -ENV REACT_APP_KEYCLOAK_CLIENT_ID=  | 
12 |  | -ENV REACT_APP_KEYCLOAK_REALM=  | 
13 |  | - | 
14 |  | -ENV APP_TITLE=${APP_TITLE}  | 
15 |  | -ENV APP_DESCRIPTION=${APP_DESCRIPTION}  | 
16 |  | -ENV REACT_APP_STAC_API=${REACT_APP_STAC_API}  | 
17 |  | -ENV REACT_APP_STAC_BROWSER=${REACT_APP_STAC_BROWSER}  | 
18 |  | -ENV PUBLIC_URL=${PUBLIC_URL}  | 
19 |  | -ENV REACT_APP_KEYCLOAK_URL=${REACT_APP_KEYCLOAK_URL}  | 
20 |  | -ENV REACT_APP_KEYCLOAK_CLIENT_ID=${REACT_APP_KEYCLOAK_CLIENT_ID}  | 
21 |  | -ENV REACT_APP_KEYCLOAK_REALM=${REACT_APP_KEYCLOAK_REALM}  | 
22 |  | - | 
23 |  | -# Set the working directory  | 
 | 3 | +ARG APP_TITLE=%APP_TITLE%  | 
 | 4 | +ARG APP_DESCRIPTION=%APP_DESCRIPTION%  | 
 | 5 | +ARG REACT_APP_STAC_API=%REACT_APP_STAC_API%  | 
 | 6 | +ARG PUBLIC_URL=%PUBLIC_URL%  | 
 | 7 | +ARG REACT_APP_STAC_BROWSER=%REACT_APP_STAC_BROWSER%  | 
 | 8 | +ARG REACT_APP_KEYCLOAK_URL=%REACT_APP_KEYCLOAK_URL%  | 
 | 9 | +ARG REACT_APP_KEYCLOAK_CLIENT_ID=%REACT_APP_KEYCLOAK_CLIENT_ID%  | 
 | 10 | +ARG REACT_APP_KEYCLOAK_REALM=%REACT_APP_KEYCLOAK_REALM%  | 
 | 11 | +ARG PRIMARY_COLOR=%PRIMARY_COLOR%  | 
 | 12 | +ARG SECONDARY_COLOR=%SECONDARY_COLOR%  | 
 | 13 | + | 
24 | 14 | WORKDIR /app  | 
25 | 15 | 
 
  | 
26 |  | -# Copy the rest of the application code  | 
27 | 16 | COPY . .  | 
28 | 17 | 
 
  | 
29 |  | -# Install dependencies  | 
30 | 18 | RUN npm i  | 
31 | 19 | RUN npm i -g http-server  | 
 | 20 | +RUN npm run all:build  | 
 | 21 | +RUN cp -v packages/client/dist/index.html packages/client/dist/404.html  | 
32 | 22 | 
 
  | 
33 |  | -# Create a start script that respects runtime environment variables  | 
34 |  | -RUN echo '#!/bin/sh\n\  | 
35 |  | -echo "Starting build"\n\  | 
36 |  | -npm run all:build\n\  | 
37 |  | -echo "App built successfully"\n\  | 
38 |  | -cp -v packages/client/dist/index.html packages/client/dist/404.html\n\  | 
39 |  | -echo "Starting server"\n\  | 
40 |  | -http-server -p 80 packages/client/dist' > /app/start.sh  | 
 | 23 | +RUN apt-get update && apt-get install -y gettext-base sed  | 
41 | 24 | 
 
  | 
42 |  | -RUN chmod +x /app/start.sh  | 
 | 25 | +# Set up entrypoint script  | 
 | 26 | +COPY docker-entrypoint.sh /app/docker-entrypoint.sh  | 
 | 27 | +RUN chmod +x /app/docker-entrypoint.sh  | 
43 | 28 | 
 
  | 
44 | 29 | EXPOSE 80  | 
45 | 30 | 
 
  | 
46 |  | -ENTRYPOINT ["/app/start.sh"]  | 
 | 31 | +ENTRYPOINT ["/app/docker-entrypoint.sh"]  | 
 | 32 | +CMD ["http-server", "-p", "80", "packages/client/dist"]  | 
0 commit comments