This commit is contained in:
oleh 2025-03-14 20:38:37 +01:00
parent 6e6ffb53a5
commit ce9f9cc498
4 changed files with 27 additions and 30 deletions

View File

@ -1,12 +1,26 @@
version: '3.8' version: '3.8'
services: services:
mysql:
image: mysql:8.0.30
container_name: battleship_mysql
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=somepassword
- MYSQL_DATABASE=battleship
ports:
- "3306:3306"
networks:
- app-net
volumes:
- db_data:/var/lib/mysql
backend: backend:
build: ./backend build: ./backend
container_name: battleship_backend container_name: battleship_backend
restart: unless-stopped restart: unless-stopped
environment: environment:
- DB_HOST=battleship-mysql - DB_HOST=mysql
- DB_PORT=3306 - DB_PORT=3306
- DB_USER=root - DB_USER=root
- DB_PASSWORD=somepassword - DB_PASSWORD=somepassword
@ -15,6 +29,8 @@ services:
- "4000:4000" - "4000:4000"
networks: networks:
- app-net - app-net
depends_on:
- mysql
frontend: frontend:
build: ./frontend build: ./frontend
@ -30,3 +46,6 @@ services:
networks: networks:
app-net: app-net:
external: true external: true
volumes:
db_data:

View File

@ -1,34 +1,10 @@
echo "Preparing app..." echo "Preparing app..."
# Создаем сеть, если хотите оставить её внешней
docker network inspect app-net >/dev/null 2>&1 || docker network create app-net docker network inspect app-net >/dev/null 2>&1 || docker network create app-net
if ! docker image inspect mysql:8.0.30 >/dev/null 2>&1; then # Собираем образы (backend, frontend) через docker-compose
echo "MySQL image not found locally. Pulling image..."
docker pull mysql:8.0.30
fi
MYSQL_CONTAINER=$(docker ps -aq -f name=battleship-mysql)
if [ -n "$MYSQL_CONTAINER" ]; then
if [ "$(docker ps -q -f name=battleship-mysql)" ]; then
echo "MySQL container is already running."
else
echo "Starting existing MySQL container..."
docker start battleship-mysql
docker network connect app-net battleship-mysql || true
fi
else
echo "Creating and starting MySQL container..."
docker run --network app-net --name battleship-mysql \
-e MYSQL_ROOT_PASSWORD=somepassword \
-e MYSQL_DATABASE=battleship \
-p 3306:3306 \
-d mysql:8.0.30
fi
docker-compose build docker-compose build
echo "Preparation done." echo "Preparation done."

View File

@ -1,10 +1,11 @@
echo "Removing app..." echo "Removing app..."
# Останавливаем и удаляем все контейнеры,
# а также volume (db_data), образы локальные (если надо)
docker-compose down -v --rmi local docker-compose down -v --rmi local
# Если нужно удалить базу данных, можно удалить контейнер MySQL отдельно: # Если хотите удалить и внешнюю сеть:
docker rm -f battleship-mysql docker network rm app-net || true
docker volume rm db_data
echo "App removed completely." echo "App removed completely."

View File

@ -6,4 +6,5 @@ docker-compose up -d
echo "App is running." echo "App is running."
echo "Frontend is available at: http://localhost:3001" echo "Frontend is available at: http://localhost:3001"
echo "Backend is available at: http://localhost:4000" echo "Backend is available at: http://localhost:4000"
echo "MySQL is available at: localhost:3306"
docker-compose ps docker-compose ps