Spaces:
Runtime error
Runtime error
Commit
·
2f48b4a
1
Parent(s):
de31f51
Updated run.sh again
Browse files- Dockerfile +3 -4
- run.sh +24 -9
Dockerfile
CHANGED
@@ -13,16 +13,15 @@ RUN dnf install -y \
|
|
13 |
&& dnf clean all \
|
14 |
&& rm -rf /var/cache/dnf
|
15 |
|
16 |
-
#
|
17 |
-
RUN
|
18 |
-
mkdir -p /app && \
|
19 |
chown -R 1001:0 /app && \
|
20 |
chmod -R g=u /app
|
21 |
|
22 |
# Set working directory
|
23 |
WORKDIR /app
|
24 |
|
25 |
-
# Switch to non-root user
|
26 |
USER 1001
|
27 |
|
28 |
# Copy requirements first to leverage Docker cache
|
|
|
13 |
&& dnf clean all \
|
14 |
&& rm -rf /var/cache/dnf
|
15 |
|
16 |
+
# Set up application directory
|
17 |
+
RUN mkdir -p /app && \
|
|
|
18 |
chown -R 1001:0 /app && \
|
19 |
chmod -R g=u /app
|
20 |
|
21 |
# Set working directory
|
22 |
WORKDIR /app
|
23 |
|
24 |
+
# Switch to non-root user (default in UBI image)
|
25 |
USER 1001
|
26 |
|
27 |
# Copy requirements first to leverage Docker cache
|
run.sh
CHANGED
@@ -1,5 +1,7 @@
|
|
1 |
#!/bin/bash
|
2 |
|
|
|
|
|
3 |
# Default values
|
4 |
PORT=7860
|
5 |
ENV_FILE=".env"
|
@@ -18,6 +20,12 @@ usage() {
|
|
18 |
exit 1
|
19 |
}
|
20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
# Parse command line arguments
|
22 |
while getopts "p:e:n:bh" opt; do
|
23 |
case $opt in
|
@@ -50,8 +58,7 @@ fi
|
|
50 |
|
51 |
# Check if docker is installed
|
52 |
if ! command -v docker &> /dev/null; then
|
53 |
-
|
54 |
-
exit 1
|
55 |
fi
|
56 |
|
57 |
# Check if .env file exists
|
@@ -66,7 +73,7 @@ fi
|
|
66 |
|
67 |
# Build the Docker image
|
68 |
echo "Building Docker image..."
|
69 |
-
docker build $PLATFORM_ARG -t $CONTAINER_NAME .
|
70 |
|
71 |
# Exit if build only
|
72 |
if [ "$BUILD_ONLY" = true ]; then
|
@@ -77,23 +84,31 @@ fi
|
|
77 |
# Check if container is already running
|
78 |
if docker ps -q -f name=$CONTAINER_NAME | grep -q .; then
|
79 |
echo "Stopping existing container..."
|
80 |
-
docker stop $CONTAINER_NAME
|
81 |
fi
|
82 |
|
83 |
# Remove existing container
|
84 |
if docker ps -aq -f name=$CONTAINER_NAME | grep -q .; then
|
85 |
echo "Removing existing container..."
|
86 |
-
docker rm $CONTAINER_NAME
|
87 |
fi
|
88 |
|
89 |
# Run the container
|
90 |
echo "Starting container on port $PORT..."
|
91 |
-
docker run -d \
|
92 |
--name $CONTAINER_NAME \
|
93 |
--env-file $ENV_FILE \
|
94 |
-p $PORT:7860 \
|
95 |
-v $HOME/.cache/huggingface:/app/.cache/huggingface \
|
96 |
-
$CONTAINER_NAME
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
|
98 |
-
echo "Container started!
|
99 |
-
echo "
|
|
|
|
1 |
#!/bin/bash
|
2 |
|
3 |
+
set -e # Exit on error
|
4 |
+
|
5 |
# Default values
|
6 |
PORT=7860
|
7 |
ENV_FILE=".env"
|
|
|
20 |
exit 1
|
21 |
}
|
22 |
|
23 |
+
# Function to handle errors
|
24 |
+
handle_error() {
|
25 |
+
echo "Error: $1"
|
26 |
+
exit 1
|
27 |
+
}
|
28 |
+
|
29 |
# Parse command line arguments
|
30 |
while getopts "p:e:n:bh" opt; do
|
31 |
case $opt in
|
|
|
58 |
|
59 |
# Check if docker is installed
|
60 |
if ! command -v docker &> /dev/null; then
|
61 |
+
handle_error "Docker is not installed"
|
|
|
62 |
fi
|
63 |
|
64 |
# Check if .env file exists
|
|
|
73 |
|
74 |
# Build the Docker image
|
75 |
echo "Building Docker image..."
|
76 |
+
docker build $PLATFORM_ARG -t $CONTAINER_NAME . || handle_error "Failed to build Docker image"
|
77 |
|
78 |
# Exit if build only
|
79 |
if [ "$BUILD_ONLY" = true ]; then
|
|
|
84 |
# Check if container is already running
|
85 |
if docker ps -q -f name=$CONTAINER_NAME | grep -q .; then
|
86 |
echo "Stopping existing container..."
|
87 |
+
docker stop $CONTAINER_NAME || handle_error "Failed to stop existing container"
|
88 |
fi
|
89 |
|
90 |
# Remove existing container
|
91 |
if docker ps -aq -f name=$CONTAINER_NAME | grep -q .; then
|
92 |
echo "Removing existing container..."
|
93 |
+
docker rm $CONTAINER_NAME || handle_error "Failed to remove existing container"
|
94 |
fi
|
95 |
|
96 |
# Run the container
|
97 |
echo "Starting container on port $PORT..."
|
98 |
+
if ! docker run -d \
|
99 |
--name $CONTAINER_NAME \
|
100 |
--env-file $ENV_FILE \
|
101 |
-p $PORT:7860 \
|
102 |
-v $HOME/.cache/huggingface:/app/.cache/huggingface \
|
103 |
+
$CONTAINER_NAME; then
|
104 |
+
handle_error "Failed to start container"
|
105 |
+
fi
|
106 |
+
|
107 |
+
# Verify container is running
|
108 |
+
if ! docker ps | grep -q $CONTAINER_NAME; then
|
109 |
+
handle_error "Container failed to start. Check logs with: docker logs $CONTAINER_NAME"
|
110 |
+
fi
|
111 |
|
112 |
+
echo "Container started successfully!"
|
113 |
+
echo "API should be available at http://localhost:$PORT"
|
114 |
+
echo "To view logs, run: docker logs -f $CONTAINER_NAME"
|