|
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}/#/external/$(echo ${REACT_APP_STAC_API} | sed 's|^https://||')" |
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 | +ENV APP_TITLE=%APP_TITLE% |
| 4 | +ENV APP_DESCRIPTION=%APP_DESCRIPTION% |
| 5 | +ENV REACT_APP_STAC_API=%REACT_APP_STAC_API% |
| 6 | +ENV PUBLIC_URL=%PUBLIC_URL% |
| 7 | +ENV REACT_APP_STAC_BROWSER=%REACT_APP_STAC_BROWSER% |
| 8 | +ENV REACT_APP_KEYCLOAK_URL=%REACT_APP_KEYCLOAK_URL% |
| 9 | +ENV REACT_APP_KEYCLOAK_CLIENT_ID=%REACT_APP_KEYCLOAK_CLIENT_ID% |
| 10 | +ENV REACT_APP_KEYCLOAK_REALM=%REACT_APP_KEYCLOAK_REALM% |
| 11 | +ENV PRIMARY_COLOR=%PRIMARY_COLOR% |
| 12 | +ENV 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