28 lines
670 B
Docker
28 lines
670 B
Docker
FROM node:20-alpine
|
|
|
|
WORKDIR /app
|
|
|
|
# Copy package files and install dependencies
|
|
COPY package*.json ./
|
|
RUN npm ci
|
|
|
|
# Copy only the necessary files for the backend
|
|
COPY app.js ./
|
|
COPY src/api ./src/api
|
|
COPY src/utils ./src/utils
|
|
COPY src/types.ts ./src/types.ts
|
|
|
|
# Create script to handle environment variables
|
|
RUN echo '#!/bin/sh\n\
|
|
if [ ! -f .env ] && [ -n "$WREN_API_TOKEN" ]; then\n\
|
|
echo "Creating .env file from environment variables..."\n\
|
|
echo "WREN_API_TOKEN=$WREN_API_TOKEN" > .env\n\
|
|
fi\n\
|
|
\n\
|
|
exec "$@"' > /entrypoint.sh \
|
|
&& chmod +x /entrypoint.sh
|
|
|
|
# Use our entrypoint script before running the app
|
|
ENTRYPOINT ["/entrypoint.sh"]
|
|
CMD ["node", "app.js"]
|