-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsync_docker.sh
More file actions
executable file
·64 lines (53 loc) · 2.18 KB
/
sync_docker.sh
File metadata and controls
executable file
·64 lines (53 loc) · 2.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/bin/bash
set -e
# Configuration
# if you don't have a local registry, just remove the redundant lines
LOCAL_REPO=docker-registry:4000/java-stateless
DOCKERHUB_REPO=nemisolv/java-stateless
TAG=latest
CONTAINER_NAME=java-stateless-container
echo "=== Java Stateless Docker Build & Deploy ==="
echo "Local Registry: ${LOCAL_REPO}:${TAG}"
echo "DockerHub: ${DOCKERHUB_REPO}:${TAG}"
# Step 1: Clean and build JAR
echo "Step 1: Building JAR file..."
echo "Gradle version: $(./gradlew --version | head -1)"
rm -f build/libs/*.jar
./gradlew clean build -x test
echo "JAR build completed!"
# Step 2: Build Docker image
echo "Step 2: Building Docker image..."
docker build -t ${LOCAL_REPO}:${TAG} .
docker tag ${LOCAL_REPO}:${TAG} ${DOCKERHUB_REPO}:${TAG}
echo "Docker image built and tagged successfully!"
# Step 3: Clean up existing container
echo "Step 3: Cleaning up existing container..."
docker stop ${CONTAINER_NAME} 2>/dev/null || echo "No running container to stop"
docker rm ${CONTAINER_NAME} 2>/dev/null || echo "No container to remove"
# Step 4: Push to both registries
echo "Step 4: Pushing to local registry..."
docker push ${LOCAL_REPO}:${TAG}
echo "Successfully pushed to local registry!"
echo "Step 5: Pushing to DockerHub..."
docker push ${DOCKERHUB_REPO}:${TAG}
echo "Successfully pushed to DockerHub!"
# Step 6: Run the new container
echo "Step 6: Starting new container..."
docker run -d --name ${CONTAINER_NAME} -p 8080:8080 ${LOCAL_REPO}:${TAG}
echo "Container started successfully!"
# Step 7: Clean up old images (after push and run)
echo "Step 7: Cleaning up old images..."
if docker images -q ${LOCAL_REPO}:${TAG} > /dev/null 2>&1; then
echo "Removing old local image..."
docker rmi ${LOCAL_REPO}:${TAG} 2>/dev/null || echo "Old local image already removed"
fi
if docker images -q ${DOCKERHUB_REPO}:${TAG} > /dev/null 2>&1; then
echo "Removing old DockerHub image..."
docker rmi ${DOCKERHUB_REPO}:${TAG} 2>/dev/null || echo "Old DockerHub image already removed"
fi
echo "=== Deployment completed! ==="
echo "Container: ${CONTAINER_NAME}"
echo "Local Registry: ${LOCAL_REPO}:${TAG}"
echo "DockerHub: ${DOCKERHUB_REPO}:${TAG}"
echo "Port: 8080"
echo "Check logs: docker logs ${CONTAINER_NAME}"