diff --git a/z1/docker-compose.yml b/z1/docker-compose.yml index 4d226dc..044e6af 100644 --- a/z1/docker-compose.yml +++ b/z1/docker-compose.yml @@ -1,12 +1,26 @@ version: '3.8' 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: build: ./backend container_name: battleship_backend restart: unless-stopped environment: - - DB_HOST=battleship-mysql + - DB_HOST=mysql - DB_PORT=3306 - DB_USER=root - DB_PASSWORD=somepassword @@ -15,6 +29,8 @@ services: - "4000:4000" networks: - app-net + depends_on: + - mysql frontend: build: ./frontend @@ -30,3 +46,6 @@ services: networks: app-net: external: true + +volumes: + db_data: diff --git a/z1/prepare-app.sh b/z1/prepare-app.sh index df88ff3..9c78117 100644 --- a/z1/prepare-app.sh +++ b/z1/prepare-app.sh @@ -1,34 +1,10 @@ echo "Preparing app..." +# Создаем сеть, если хотите оставить её внешней 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 - 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 - - +# Собираем образы (backend, frontend) через docker-compose docker-compose build echo "Preparation done." diff --git a/z1/remove-app.sh b/z1/remove-app.sh index 94a9301..561834d 100644 --- a/z1/remove-app.sh +++ b/z1/remove-app.sh @@ -1,10 +1,11 @@ echo "Removing app..." +# Останавливаем и удаляем все контейнеры, +# а также volume (db_data), образы локальные (если надо) docker-compose down -v --rmi local -# Если нужно удалить базу данных, можно удалить контейнер MySQL отдельно: -docker rm -f battleship-mysql -docker volume rm db_data +# Если хотите удалить и внешнюю сеть: +docker network rm app-net || true echo "App removed completely." diff --git a/z1/start-app.sh b/z1/start-app.sh index d7db20b..0b85881 100644 --- a/z1/start-app.sh +++ b/z1/start-app.sh @@ -6,4 +6,5 @@ docker-compose up -d echo "App is running." echo "Frontend is available at: http://localhost:3001" echo "Backend is available at: http://localhost:4000" +echo "MySQL is available at: localhost:3306" docker-compose ps