3
3
# Log startup for debugging
4
4
echo " Starting initialization script..."
5
5
6
- # Use /mnt/stateful_partition which is writable in GCE
7
- mkdir -p /mnt/stateful_partition/agent/data
8
- chmod 777 /mnt/stateful_partition/agent/data
6
+ # Create parent directories first with error checking
7
+ echo " Creating directory structure..."
8
+ sudo mkdir -p /mnt/stateful_partition || {
9
+ echo " Failed to create stateful_partition directory"
10
+ exit 1
11
+ }
9
12
10
- # Verify directory creation
13
+ # Create qi-agents directory
14
+ sudo mkdir -p /mnt/stateful_partition/qi-agents || {
15
+ echo " Failed to create qi-agents directory"
16
+ exit 1
17
+ }
18
+
19
+ # Create data directory
20
+ sudo mkdir -p /mnt/stateful_partition/qi-agents/data || {
21
+ echo " Failed to create data directory"
22
+ exit 1
23
+ }
24
+
25
+ # Set permissions
26
+ echo " Setting directory permissions..."
27
+ sudo chmod -R 777 /mnt/stateful_partition/qi-agents || {
28
+ echo " Failed to set permissions"
29
+ exit 1
30
+ }
31
+
32
+ # Verify directory structure
33
+ echo " Verifying directory structure..."
11
34
ls -la /mnt/stateful_partition/qi-agents/
12
35
13
- # Pull latest image
36
+ # Pull latest image with verification
14
37
echo " Pulling latest image..."
15
- docker pull us-central1-docker.pkg.dev/${PROJECT_ID} /${FULL_NAME} :${version}
38
+ if ! docker pull us-central1-docker.pkg.dev/${PROJECT_ID} /${FULL_NAME} :${version} ; then
39
+ echo " Failed to pull image"
40
+ exit 1
41
+ fi
42
+
43
+ # Get secrets from Secret Manager
44
+ echo " Fetching secrets..."
45
+ AGENTS_BUCKET_NAME=$( gcloud secrets versions access latest --secret=" agents-bucket-name" )
46
+ SMALL_GOOGLE_MODEL=$( gcloud secrets versions access latest --secret=" small-google-model" )
47
+ MEDIUM_GOOGLE_MODEL=$( gcloud secrets versions access latest --secret=" medium-google-model" )
48
+ GOOGLE_GENERATIVE_AI_API_KEY=$( gcloud secrets versions access latest --secret=" google-generative-ai-key" )
16
49
17
50
# Run container with persistent storage and restart policy
18
51
echo " Starting container..."
19
52
docker run -d \
20
53
--name ${FULL_NAME} \
21
54
--restart=always \
22
- -v /mnt/stateful_partition/agent/data:/app/agent/data \
23
- -e AGENTS_BUCKET_NAME=" gs://$AGENTS_BUCKET_NAME " \
24
- -e CHARACTER_FILE=" $CHARACTER_FILE " \
25
- -e SMALL_GOOGLE_MODEL=" $SMALL_GOOGLE_MODEL " \
26
- -e MEDIUM_GOOGLE_MODEL=" $MEDIUM_GOOGLE_MODEL " \
27
- -e GOOGLE_GENERATIVE_AI_API_KEY=" $GOOGLE_GENERATIVE_AI_API_KEY " \
55
+ -v /mnt/stateful_partition/qi-agents/data:/app/agent/data \
56
+ -e AGENTS_BUCKET_NAME=" ${AGENTS_BUCKET_NAME} " \
57
+ -e CHARACTER_FILE=" ${CHARACTER_FILE} " \
58
+ -e SMALL_GOOGLE_MODEL=" ${SMALL_GOOGLE_MODEL} " \
59
+ -e MEDIUM_GOOGLE_MODEL=" ${MEDIUM_GOOGLE_MODEL} " \
60
+ -e GOOGLE_GENERATIVE_AI_API_KEY=" ${GOOGLE_GENERATIVE_AI_API_KEY} " \
61
+ -e PORT=" 8080" \
62
+ -e SERVER_PORT=" 8080" \
28
63
us-central1-docker.pkg.dev/${PROJECT_ID} /${FULL_NAME} :${version}
29
64
30
- # Log container status
65
+ # Verify container is running
31
66
echo " Container started. Checking status..."
32
- docker ps | grep ${FULL_NAME}
67
+ if ! docker ps | grep ${FULL_NAME} ; then
68
+ echo " Container failed to start. Checking logs:"
69
+ docker logs ${FULL_NAME}
70
+ exit 1
71
+ fi
72
+
73
+ # Log success
74
+ echo " Startup script completed successfully"
0 commit comments