Move npm build to Docker image build time (#4636)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,8 @@
|
|||||||
FROM node:20.12-slim
|
FROM node:20.12-slim
|
||||||
|
|
||||||
|
# Install tini for proper signal handling and zombie reaping
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends tini && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY ./skyvern-frontend /app
|
COPY ./skyvern-frontend /app
|
||||||
COPY ./entrypoint-skyvernui.sh /app/entrypoint-skyvernui.sh
|
COPY ./entrypoint-skyvernui.sh /app/entrypoint-skyvernui.sh
|
||||||
@@ -8,6 +11,13 @@ RUN npm install
|
|||||||
ENV VITE_API_BASE_URL=http://localhost:8000/api/v1
|
ENV VITE_API_BASE_URL=http://localhost:8000/api/v1
|
||||||
ENV VITE_WSS_BASE_URL=ws://localhost:8000/api/v1
|
ENV VITE_WSS_BASE_URL=ws://localhost:8000/api/v1
|
||||||
ENV VITE_ARTIFACT_API_BASE_URL=http://localhost:9090
|
ENV VITE_ARTIFACT_API_BASE_URL=http://localhost:9090
|
||||||
|
# Placeholder for runtime injection
|
||||||
|
ENV VITE_SKYVERN_API_KEY=__SKYVERN_API_KEY_PLACEHOLDER__
|
||||||
|
|
||||||
CMD [ "/bin/bash", "/app/entrypoint-skyvernui.sh" ]
|
# Build at image time
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
|
# Use tini as init for proper signal handling and zombie reaping
|
||||||
|
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||||
|
CMD ["/bin/bash", "/app/entrypoint-skyvernui.sh"]
|
||||||
|
|
||||||
|
|||||||
@@ -2,9 +2,16 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# setting api key
|
# Extract API key from secrets file
|
||||||
VITE_SKYVERN_API_KEY=$(sed -n 's/.*cred\s*=\s*"\([^"]*\)".*/\1/p' .streamlit/secrets.toml)
|
VITE_SKYVERN_API_KEY=$(sed -n 's/.*cred\s*=\s*"\([^"]*\)".*/\1/p' .streamlit/secrets.toml 2>/dev/null || echo "")
|
||||||
export VITE_SKYVERN_API_KEY
|
|
||||||
npm run start
|
|
||||||
|
|
||||||
|
# Inject API key into pre-built JS files (replace placeholder)
|
||||||
|
if [ -n "$VITE_SKYVERN_API_KEY" ]; then
|
||||||
|
find /app/dist -name "*.js" -exec sed -i "s/__SKYVERN_API_KEY_PLACEHOLDER__/$VITE_SKYVERN_API_KEY/g" {} \;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Start the servers (no rebuild needed)
|
||||||
|
# Tini (configured as ENTRYPOINT) handles signal forwarding and zombie reaping
|
||||||
|
node localServer.js &
|
||||||
|
node artifactServer.js &
|
||||||
|
wait
|
||||||
|
|||||||
Reference in New Issue
Block a user