-
Notifications
You must be signed in to change notification settings - Fork 1.3k
#181 Fix - Updated default data configuration to JSON #182
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
6606077
840cc94
0034e92
07a0776
5d2aa69
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -1,5 +1,3 @@ | ||||||
| # Azure Naming Tool v5.0.0 Migration Guide | ||||||
|
|
||||||
| ## Overview | ||||||
|
|
||||||
| Version 5.0.0 of the Azure Naming Tool introduces significant enhancements including a modern redesigned UI, SQLite database storage option, and Azure resource name validation capabilities. This guide will help you successfully migrate from previous versions to v5.0.0. | ||||||
|
|
@@ -279,20 +277,42 @@ v5.0.0 requires .NET 10.0 runtime. You **MUST** update your App Service runtime | |||||
|
|
||||||
| **⚠️ IMPORTANT: .NET 10.0 Docker Image Required** | ||||||
|
|
||||||
| v5.0.0 uses a new Docker image based on .NET 10.0 runtime. | ||||||
| v5.0.0 uses a new Docker image based on .NET 10.0 runtime. You need to build the image locally from source. | ||||||
|
|
||||||
| **🚨 CRITICAL - Azure Container Apps Users:** | ||||||
|
|
||||||
| If you are deploying to **Azure Container Apps with Azure File Share** for persistent storage: | ||||||
|
|
||||||
| > **DO NOT use SQLite storage!** | ||||||
| > | ||||||
| > SQLite does not work with Azure File Share (SMB/CIFS network mounts) due to file locking issues. Your container will fail to start with `"database is locked"` errors. | ||||||
| > | ||||||
| > **Solution:** Use FileSystem (JSON) storage instead: | ||||||
| > - In `appsettings.json`, ensure: `"StorageProvider": "FileSystem"` | ||||||
| > - This is the default for fresh Docker installations | ||||||
| > - JSON files work perfectly with Azure File Share mounts | ||||||
| > - You can still use all v5.0.0 features except Azure Tenant Name Validation (which requires SQLite) | ||||||
|
|
||||||
| **For other Docker deployments:** SQLite works fine with local Docker volumes. | ||||||
|
|
||||||
| 1. **STOP the current container (if running):** | ||||||
| ```bash | ||||||
| docker stop azurenamingtool | ||||||
| docker rm azurenamingtool | ||||||
| ``` | ||||||
|
|
||||||
| 2. **Pull the latest v5.0.0 image:** | ||||||
| 2. **Clone the repository and build the v5.0.0 image:** | ||||||
| ```bash | ||||||
| # Pull the .NET 10.0-based image | ||||||
| docker pull ghcr.io/mspnp/azurenamingtool:v5.0.0 | ||||||
| # Or use latest tag (ensure it's v5.0.0 or higher) | ||||||
| docker pull ghcr.io/mspnp/azurenamingtool:latest | ||||||
| # Clone the repository (if not already cloned) | ||||||
| git clone https://github.com/mspnp/AzureNamingTool.git | ||||||
| cd AzureNamingTool | ||||||
|
|
||||||
| # Checkout the v5.0.0 release tag | ||||||
| git checkout v5.0.0 | ||||||
|
|
||||||
| # Build the Docker image from the src directory | ||||||
| cd src | ||||||
| docker build -t azurenamingtool:v5.0.0 . | ||||||
| ``` | ||||||
|
|
||||||
| 3. **Run with persistent storage:** | ||||||
|
|
@@ -303,7 +323,7 @@ v5.0.0 uses a new Docker image based on .NET 10.0 runtime. | |||||
| -v $(pwd)/settings:/app/settings \ | ||||||
| --name azurenamingtool \ | ||||||
| --restart unless-stopped \ | ||||||
| ghcr.io/mspnp/azurenamingtool:v5.0.0 | ||||||
| azurenamingtool:v5.0.0 | ||||||
| ``` | ||||||
|
|
||||||
| **Windows PowerShell:** | ||||||
|
|
@@ -314,10 +334,10 @@ v5.0.0 uses a new Docker image based on .NET 10.0 runtime. | |||||
| -v ${PWD}/settings:/app/settings ` | ||||||
| --name azurenamingtool ` | ||||||
| --restart unless-stopped ` | ||||||
| ghcr.io/mspnp/azurenamingtool:v5.0.0 | ||||||
| azurenamingtool:v5.0.0 | ||||||
| ``` | ||||||
|
|
||||||
| 4. **Verify container started:** | ||||||
| 5. **Verify container started:** | ||||||
| ```bash | ||||||
| # Check container is running | ||||||
| docker ps | ||||||
|
|
@@ -328,25 +348,25 @@ v5.0.0 uses a new Docker image based on .NET 10.0 runtime. | |||||
| # Should see: "Now listening on: http://[::]:80" | ||||||
| ``` | ||||||
|
|
||||||
| 5. Wait 30-60 seconds, then access the application at `http://localhost` | ||||||
| 6. Access the application at `http://localhost:8081` (or your chosen port) | ||||||
|
||||||
|
|
||||||
| 6. **VERIFY DEPLOYMENT:** | ||||||
| - Check container logs: `docker logs azurenamingtool | grep "Application started"` | ||||||
| - Access http://localhost and verify v5.0.0 loads | ||||||
| 7. **VERIFY DEPLOYMENT:** | ||||||
|
||||||
| 7. **VERIFY DEPLOYMENT:** | |
| 6. **VERIFY DEPLOYMENT:** |
Copilot
AI
Dec 11, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Docker Compose build context may be unclear. The step-by-step instructions tell users to cd src before running docker build, but the Docker Compose example uses build: . without specifying which directory to run docker-compose from. Since the Dockerfile is in the src/ directory, the docker-compose.yml should either be placed in the src/ directory, or the build context should be explicitly set to ./src in the compose file (e.g., build: ./src or build: { context: ./src }). Consider adding a note clarifying where to place or run the docker-compose.yml file.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -279,45 +279,52 @@ v5.0.0 requires .NET 10.0 runtime. You **MUST** update your App Service runtime | |
|
|
||
| **⚠️ IMPORTANT: .NET 10.0 Docker Image Required** | ||
|
|
||
| v5.0.0 uses a new Docker image based on .NET 10.0 runtime. | ||
| v5.0.0 uses a new Docker image based on .NET 10.0 runtime. You must build the image from source. | ||
|
|
||
| 1. **STOP the current container (if running):** | ||
| ```bash | ||
| docker stop azurenamingtool | ||
| docker rm azurenamingtool | ||
| ``` | ||
|
|
||
| 2. **Pull the latest v5.0.0 image:** | ||
| 2. **Download and extract v5.0.0 release:** | ||
| - Navigate to the [Releases page](https://github.com/mspnp/AzureNamingTool/releases) | ||
| - Download **AzureNamingTool.zip** from the v5.0.0 release assets | ||
| - Extract the ZIP file to a folder | ||
| - Verify the extracted files match the repository contents | ||
|
|
||
| 3. **Build the v5.0.0 Docker image:** | ||
| ```bash | ||
| # Pull the .NET 10.0-based image | ||
| docker pull ghcr.io/mspnp/azurenamingtool:v5.0.0 | ||
| # Or use latest tag (ensure it's v5.0.0 or higher) | ||
| docker pull ghcr.io/mspnp/azurenamingtool:latest | ||
| # Navigate to the extracted folder | ||
| cd path/to/extracted/AzureNamingTool | ||
|
|
||
| # Build the Docker image | ||
| docker build -t azurenamingtool . | ||
| ``` | ||
|
|
||
| > **NOTE:** Ensure the '.' is included in the command | ||
|
|
||
| 3. **Run with persistent storage:** | ||
| 4. **Run with persistent storage using a Docker volume:** | ||
| ```bash | ||
| docker run -d \ | ||
| -p 80:80 \ | ||
| -v $(pwd)/repository:/app/repository \ | ||
| -v $(pwd)/settings:/app/settings \ | ||
| -p 8081:80 \ | ||
| --mount source=azurenamingtoolvol,target=/app/settings \ | ||
| --name azurenamingtool \ | ||
| --restart unless-stopped \ | ||
| ghcr.io/mspnp/azurenamingtool:v5.0.0 | ||
| azurenamingtool:latest | ||
| ``` | ||
|
|
||
| **Windows PowerShell:** | ||
| ```powershell | ||
| docker run -d ` | ||
| -p 80:80 ` | ||
| -v ${PWD}/repository:/app/repository ` | ||
| -v ${PWD}/settings:/app/settings ` | ||
| --name azurenamingtool ` | ||
| --restart unless-stopped ` | ||
| ghcr.io/mspnp/azurenamingtool:v5.0.0 | ||
| **Windows Command Prompt:** | ||
| ```cmd | ||
| docker run -d -p 8081:80 --mount source=azurenamingtoolvol,target=/app/settings --name azurenamingtool --restart unless-stopped azurenamingtool:latest | ||
| ``` | ||
|
|
||
| > **NOTES:** | ||
| > - Substitute 8081 for any port not in use on your machine | ||
| > - The volume mount ensures settings persist across container restarts | ||
| > - You may see warnings about DataProtection keys - these are normal and indicate keys are local to the container | ||
|
|
||
| 4. **Verify container started:** | ||
| 5. **Verify container started:** | ||
| ```bash | ||
| # Check container is running | ||
| docker ps | ||
|
|
@@ -328,25 +335,25 @@ v5.0.0 uses a new Docker image based on .NET 10.0 runtime. | |
| # Should see: "Now listening on: http://[::]:80" | ||
| ``` | ||
|
|
||
| 5. Wait 30-60 seconds, then access the application at `http://localhost` | ||
| 6. Access the application at `http://localhost:8081` (or your chosen port) | ||
|
|
||
| 6. **VERIFY DEPLOYMENT:** | ||
| - Check container logs: `docker logs azurenamingtool | grep "Application started"` | ||
| - Access http://localhost and verify v5.0.0 loads | ||
| 7. **VERIFY DEPLOYMENT:** | ||
| - Check container logs: `docker logs azurenamingtool` | ||
| - Access http://localhost:8081 and verify v5.0.0 loads | ||
| - Check footer for version "5.0.0" | ||
|
|
||
| **Docker Compose Example:** | ||
| ```yaml | ||
| version: '3.8' | ||
| services: | ||
| azurenamingtool: | ||
| image: ghcr.io/mspnp/azurenamingtool:v5.0.0 | ||
| build: . # Build from local Dockerfile | ||
|
||
| image: azurenamingtool:latest | ||
| container_name: azurenamingtool | ||
| ports: | ||
| - "80:80" | ||
| - "8081:80" # Map host port 8081 to container port 80 | ||
| volumes: | ||
| - ./repository:/app/repository | ||
| - ./settings:/app/settings | ||
| - azurenamingtoolvol:/app/settings # Use Docker volume for persistence | ||
| restart: unless-stopped | ||
| environment: | ||
| - ASPNETCORE_ENVIRONMENT=Production | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Numbering error in the deployment steps. The list jumps from step 3 to step 5, skipping step 4. This should be renumbered to step 4 instead of step 5 to maintain proper sequence.