ci: Containerization of the app #2
1 changed files with 66 additions and 6 deletions
72
README.md
72
README.md
|
|
@ -1,4 +1,4 @@
|
||||||
# MowLog
|
# Turf Tasker
|
||||||
|
|
||||||
A simple but powerful ASP.NET Core MVC application designed to track lawn care activities.
|
A simple but powerful ASP.NET Core MVC application designed to track lawn care activities.
|
||||||
**This project serves as a hands-on learning exercise to explore and master the fundamentals of the ASP.NET Core MVC framework,
|
**This project serves as a hands-on learning exercise to explore and master the fundamentals of the ASP.NET Core MVC framework,
|
||||||
|
|
@ -9,6 +9,7 @@ from data modeling with Entity Framework Core to building dynamic, data-driven v
|
||||||
- Log lawn care events (Mowing, Watering, Fertilizing, etc.).
|
- Log lawn care events (Mowing, Watering, Fertilizing, etc.).
|
||||||
- Track mowing patterns to ensure a healthy lawn and prevent ruts.
|
- Track mowing patterns to ensure a healthy lawn and prevent ruts.
|
||||||
- Dashboard homepage showing the last time key activities were performed and what the next mowing pattern should be.
|
- Dashboard homepage showing the last time key activities were performed and what the next mowing pattern should be.
|
||||||
|
- A dedicated section for general lawn care tips.
|
||||||
- A filterable and sortable log of all past activities.
|
- A filterable and sortable log of all past activities.
|
||||||
- Clean, responsive UI using Bootstrap.
|
- Clean, responsive UI using Bootstrap.
|
||||||
|
|
||||||
|
|
@ -19,11 +20,70 @@ from data modeling with Entity Framework Core to building dynamic, data-driven v
|
||||||
- **Frontend:** HTML, CSS, Bootstrap 5, JavaScript (with jQuery)
|
- **Frontend:** HTML, CSS, Bootstrap 5, JavaScript (with jQuery)
|
||||||
- **Development Environment:** JetBrains Rider on Fedora Linux
|
- **Development Environment:** JetBrains Rider on Fedora Linux
|
||||||
- **Version Control:** Git with GitLab
|
- **Version Control:** Git with GitLab
|
||||||
|
- **Containerization:** Docker
|
||||||
|
|
||||||
## How to Run
|
## How to Run
|
||||||
|
|
||||||
1. Clone the repository.
|
You can run this application either directly using the .NET SDK or via Docker.
|
||||||
2. Ensure you have the .NET 8 SDK installed.
|
|
||||||
3. Navigate to the project directory and run `dotnet restore`.
|
### Option 1: Run Natively (using .NET SDK)
|
||||||
4. Run `dotnet ef database update` to create the initial SQLite database.
|
|
||||||
5. Run `dotnet run` to start the application.
|
1. **Clone the repository:**
|
||||||
|
```bash
|
||||||
|
git clone https://gitlab.com/YourUsername/turf_tasker.git
|
||||||
|
cd turf_tasker
|
||||||
|
```
|
||||||
|
(Replace `YourUsername` with your actual GitLab username)
|
||||||
|
2. **Navigate to the project directory:**
|
||||||
|
```bash
|
||||||
|
cd turf_tasker # Assuming your solution structure is SolutionFolder/ProjectFolder
|
||||||
|
```
|
||||||
|
(If your `turf_tasker.csproj` is directly in the cloned `turf_tasker` folder, you might skip this `cd`.)
|
||||||
|
3. **Ensure .NET 8 SDK is installed:**
|
||||||
|
```bash
|
||||||
|
dotnet --version
|
||||||
|
```
|
||||||
|
(Should show 8.x.x)
|
||||||
|
4. **Restore dependencies:**
|
||||||
|
```bash
|
||||||
|
dotnet restore
|
||||||
|
```
|
||||||
|
5. **Create/Update the database:**
|
||||||
|
```bash
|
||||||
|
dotnet ef database update
|
||||||
|
```
|
||||||
|
This will create the `turf_tasker.db` SQLite file and seed initial data.
|
||||||
|
6. **Run the application:**
|
||||||
|
```bash
|
||||||
|
dotnet run
|
||||||
|
```
|
||||||
|
7. **Access in browser:** Your application will typically run on `https://localhost:5062` or a similar port, which will be displayed in the terminal output.
|
||||||
|
|
||||||
|
### Option 2: Run with Docker
|
||||||
|
|
||||||
|
1. **Ensure Docker is installed and running** on your system.
|
||||||
|
* [Docker Installation Guide](https://docs.docker.com/engine/install/)
|
||||||
|
2. **Clone the repository** (if you haven't already):
|
||||||
|
```bash
|
||||||
|
git clone https://gitlab.com/YourUsername/turf_tasker.git
|
||||||
|
cd turf_tasker
|
||||||
|
```
|
||||||
|
3. **Navigate to the project directory** (where `turf_tasker.csproj` and `Dockerfile` are located):
|
||||||
|
```bash
|
||||||
|
cd turf_tasker # Or if you're already there, skip this.
|
||||||
|
```
|
||||||
|
4. **Build the Docker image:**
|
||||||
|
```bash
|
||||||
|
docker build -t turf-tasker-app .
|
||||||
|
```
|
||||||
|
This command builds the image and tags it as `turf-tasker-app`.
|
||||||
|
5. **Run the Docker container:**
|
||||||
|
```bash
|
||||||
|
docker run -e "ASPNETCORE_URLS=http://+:80" -p 8080:80 turf-tasker-app
|
||||||
|
```
|
||||||
|
* `-e "ASPNETCORE_URLS=http://+:80"` explicitly configures the app to listen on HTTP port 80 inside the container.
|
||||||
|
* `-p 8080:80` maps port 8080 on your host machine to port 80 inside the container.
|
||||||
|
6. **Access in browser:**
|
||||||
|
```
|
||||||
|
http://localhost:8080
|
||||||
|
```
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue