-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrun_devsforge.bat
More file actions
174 lines (150 loc) · 5.28 KB
/
run_devsforge.bat
File metadata and controls
174 lines (150 loc) · 5.28 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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
@echo off
REM ============================================================================
REM Script to build and run Docker - devsforge
REM Platform: Windows CMD (MS-DOS)
REM ============================================================================
REM CONFIGURATION - Modify these variables as needed
set CONTAINER_NAME=devsforge-container
set IMAGE_NAME=devsforge-apache
set DOCKER_PORT=8090
set HOST_PORT=80
set SHARED_FOLDER=C:\devsforge\code
REM Change SHARED_FOLDER if necessary
set CONTAINER_PATH=/var/www/html/devsforge/code
REM ============================================================================
setlocal enabledelayedexpansion
cls
echo.
echo ============================================================
echo DEVSFORGE - Docker Build ^& Run Script
echo ============================================================
echo.
REM Verify that Docker is installed
echo OK: Verifying that Docker is installed...
docker --version >nul 2>&1
if errorlevel 1 (
color 0C
echo ERROR: Docker is not installed or is not in the PATH
echo Download Docker from: https://www.docker.com/products/docker-desktop
pause
exit /b 1
)
color 0A
echo OK: Docker found correctly
echo.
REM ============================================================================
REM STEP 1: Navigate to project root folder
REM ============================================================================
echo ============================================================
echo STEP 1: Navigating to project root folder...
echo ============================================================
cd /d "%~dp0"
if errorlevel 1 (
color 0C
echo ERROR: Error navigating to folder
pause
exit /b 1
)
color 0A
echo OK: Current location: %cd%
echo.
REM ============================================================================
REM STEP 2: Build Docker image
REM ============================================================================
color 0B
echo ============================================================
echo STEP 2: Building Docker image...
echo ============================================================
echo INFO: Name: %IMAGE_NAME%
echo INFO: Dockerfile: docker/Dockerfile
echo INFO: Context: %cd%
echo INFO: Note: Build may take several minutes...
echo.
docker build -t %IMAGE_NAME% -f docker/Dockerfile .
if errorlevel 1 (
color 0C
echo ERROR: Error building Docker image
pause
exit /b 1
)
color 0A
echo OK: Docker image built successfully
echo.
REM ============================================================================
REM STEP 3: Clean devsforge folder (optional)
REM ============================================================================
color 0B
echo ============================================================
echo STEP 3: Preparing shared folder...
echo ============================================================
echo Removing previous folder (if exists)...
rmdir /s /q "%SHARED_FOLDER%\.." >nul 2>&1
color 0A
echo OK: Folder removed
echo Creating folder %SHARED_FOLDER%...
mkdir %SHARED_FOLDER% >nul 2>&1
if errorlevel 1 (
color 0C
echo ERROR: Error creating folder
pause
exit /b 1
)
color 0A
echo OK: Folder created successfully
echo.
REM ============================================================================
REM STEP 4: Run Docker container
REM ============================================================================
color 0B
echo ============================================================
echo STEP 4: Starting Docker container...
echo ============================================================
echo INFO: Name: %CONTAINER_NAME%
echo INFO: Port: %DOCKER_PORT% (access: http://localhost:%DOCKER_PORT%/devsforge)
echo INFO: Volume: %SHARED_FOLDER% - %CONTAINER_PATH%
echo.
docker run -d -p %DOCKER_PORT%:%HOST_PORT% --name %CONTAINER_NAME% -v %SHARED_FOLDER%:%CONTAINER_PATH% %IMAGE_NAME%
if errorlevel 1 (
color 0C
echo ERROR: Error running container
pause
exit /b 1
)
color 0A
echo OK: Container started successfully
echo.
REM ============================================================================
REM STEP 5: Final verification
REM ============================================================================
color 0B
echo ============================================================
echo STEP 5: Verifying container status...
echo ============================================================
timeout /t 2 /nobreak >nul
docker ps --filter "name=%CONTAINER_NAME%" --format "table"
if errorlevel 1 (
color 0E
echo WARNING: Error verifying container status
)
echo.
REM ============================================================================
REM Final Summary
REM ============================================================================
color 0A
echo ============================================================
echo PROCESS COMPLETED SUCCESSFULLY
echo ============================================================
echo.
echo Access URL:
echo http://localhost:%DOCKER_PORT%/devsforge
echo.
echo Shared folder:
echo %SHARED_FOLDER%
echo.
echo Useful commands:
echo View logs: docker logs -f %CONTAINER_NAME%
echo Stop: docker stop %CONTAINER_NAME%
echo Restart: docker restart %CONTAINER_NAME%
echo Remove: docker stop %CONTAINER_NAME% ^&^& docker rm %CONTAINER_NAME%
echo.
pause