mirror of https://github.com/abpframework/abp.git
committed by
GitHub
3 changed files with 113 additions and 0 deletions
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 30 KiB |
@ -0,0 +1,113 @@ |
|||||
|
# 🚀 New in ABP Studio: Modular Docker Container Management |
||||
|
|
||||
|
We're excited to announce a new improvement to Docker integration in **ABP Studio**! |
||||
|
With the latest update, you can now manage Docker containers **individually**, add or remove them dynamically, and launch them **either separately or collectively** — all within the Studio. |
||||
|
|
||||
|
 |
||||
|
|
||||
|
------ |
||||
|
|
||||
|
## 🔄 What Has Changed? |
||||
|
|
||||
|
In previous versions, Docker dependencies were handled using a **single `docker-compose.override.yml` file**, which was **automatically generated** when creating a new solution if it is needed. |
||||
|
|
||||
|
By default, this file included common development dependencies like PostgreSQL, Redis, RabbitMQ, etc., and was executed through a predefined script named `docker-dependencies` in the Solution Runner. |
||||
|
|
||||
|
While this approach worked well for simple setups, it had some limitations: |
||||
|
|
||||
|
- All services were bundled into a **single compose file**. |
||||
|
- Adding or removing services required modifying this central file. |
||||
|
- It wasn't possible to **start or stop individual containers independently**. |
||||
|
|
||||
|
------ |
||||
|
|
||||
|
## ✅ What's New? |
||||
|
|
||||
|
With the latest ABP Studio update: |
||||
|
|
||||
|
- Each Docker container can now be defined in its **own `docker-compose` file**. |
||||
|
- Compose files can be **added or removed** from the Studio UI. |
||||
|
- Containers can be: |
||||
|
- **Started or stopped individually**. |
||||
|
- **Started/stopped in bulk**. |
||||
|
- The **Solution Runner** recognizes Docker containers and can run them alongside application projects. |
||||
|
|
||||
|
------ |
||||
|
|
||||
|
## ⚠️ Important Notes Before You Start |
||||
|
|
||||
|
### Required: Use `container_name` for Docker Service Matching |
||||
|
|
||||
|
When working with the new modular Docker system in ABP Studio, each service **must define a `container_name`**. |
||||
|
This name is used by ABP Studio to **identify and map** Docker containers to their corresponding service entries in the Studio UI. |
||||
|
|
||||
|
#### Why is this mandatory? |
||||
|
|
||||
|
- ABP Studio relies on `container_name` to: |
||||
|
- Detect whether the service is stopped or continue running. |
||||
|
- Perform **start**, **stop**, and **status check** operations reliably. |
||||
|
- Match Studio UI entries with actual running Docker containers. |
||||
|
- Without a `container_name`, container discovery may fail and **service management features might not work as expected**. |
||||
|
|
||||
|
#### Example: |
||||
|
|
||||
|
``` |
||||
|
services: |
||||
|
redis: |
||||
|
container_name: redis |
||||
|
image: redis:7 |
||||
|
ports: |
||||
|
- "6379:6379" |
||||
|
networks: |
||||
|
- my-network |
||||
|
``` |
||||
|
|
||||
|
> If you do **not** define `container_name`, ABP Studio will be unable to track or control the service properly. |
||||
|
|
||||
|
------ |
||||
|
|
||||
|
## 📥 Migrating from the Old System |
||||
|
|
||||
|
If you're using the old method with a centralized compose file: |
||||
|
|
||||
|
Before: |
||||
|
|
||||
|
``` |
||||
|
docker-compose -f docker-compose.override.yml up -d |
||||
|
``` |
||||
|
|
||||
|
Now: |
||||
|
|
||||
|
1. Create separate `docker-compose` files for each service |
||||
|
(e.g., `docker-compose.postgres.yml`, `docker-compose.redis.yml`). |
||||
|
2. Go to the **Solution Runner tab in ABP Studio**. |
||||
|
3. Use the **“Add Docker Service”** option in Studio to register each file. |
||||
|
4. Optionally remove or archive the old monolithic compose file. |
||||
|
|
||||
|
> If your original `docker-compose.override.yml` contains multiple services, you can split it into individual files — Docker Compose and ABP Studio both support modular composition. |
||||
|
|
||||
|
------ |
||||
|
|
||||
|
## ⚙️ Advanced: Shared Network |
||||
|
|
||||
|
If your containers need to communicate over a shared network, you can define an external network in each compose file like this: |
||||
|
|
||||
|
``` |
||||
|
networks: |
||||
|
my-network: |
||||
|
external: true |
||||
|
``` |
||||
|
|
||||
|
ABP Studio automatically creates the network if they do no exist. But if you like you can create the network once using: |
||||
|
|
||||
|
``` |
||||
|
docker network create abp-network |
||||
|
``` |
||||
|
|
||||
|
------ |
||||
|
|
||||
|
## 📚 Additional Resources |
||||
|
|
||||
|
- Docker Compose Documentation |
||||
|
- ABP Studio Documentation (link to updated docs when ready) |
||||
|
- [Report Issues on GitHub](https://github.com/abpframework/abp/issues) |
||||
|
After Width: | Height: | Size: 42 KiB |
Loading…
Reference in new issue