diff --git a/README.md b/README.md index 6c18213..b282062 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ See the [docs/](./docs) folder for detailed documentation: - [Development Notes](./docs/README.dev-notes.md) - Setup and troubleshooting - [Modular Structure](./docs/2025-10-18_MODULAR_STRUCTURE.md) - Architecture overview - [Migration History](./docs/MIGRATION_HISTORY.md) - TypeScript & shadcn/ui migration -- [Dev Container Setup](./docs/README.devcontainer.md) - WSL2/Podman configuration +- [Dev Container Setup](./docs/README.devcontainer.md) - Linux/WSL2 docker configuration ## 📄 License diff --git a/docs/README.devcontainer.md b/docs/README.devcontainer.md index f885934..19315f0 100644 --- a/docs/README.devcontainer.md +++ b/docs/README.devcontainer.md @@ -1,12 +1,21 @@ # 🛠️ Dev Container Setup for `med-plan-assistant` (React App in WSL2 with Podman) -This guide documents the working setup for running the `med-plan-assistant` React project inside a VSCode dev container using **WSL2** and **Podman** (no Docker Desktop). It assumes: +This guide documents the working setup for running the `med-plan-assistant` React project inside a VSCode dev container using **Ubuntu Linux** and **Docker**. or optionally WSL2 and/or Podman. It assumes the following for the linux host (or optionally WSL): -- WSL2 is installed and configured -- VSCode is installed with the **Dev Containers** extension on windows host and in WSL -- The project repo is located at `~/git/med-plan-assistant` inside WSL +- Ubuntu Linux is istalled and configured +- VSCode is installed with the **Dev Containers** extension on the host system +- The project repo is located in `~/git/med-plan-assistant` -## 📦 1. Install Podman in WSL (Ubuntu) +## 📦 1. Install Docker Service in Ubuntu + +### Using Docker.IO + +```bash +sudo apt-get install -y docker.io +sudo usermod -a -G docker $(whoami) +``` + +### Optional: Using Podman (over Docker.IO) ```bash sudo apt update @@ -19,9 +28,13 @@ podman --version #sudo usermod -a -G uucp $(whoami) ``` -## ⚙️ 2. Enable systemd and Podman socket +_Also see: [Podman installation guide](https://podman.io/getting-started/installation)_ -Edit `/etc/wsl.conf`: +## ⚙️ 2. Optional: Using WSL2 + +Additional steps when using WSL2 on Windows. + +Enable systemd for WSL2 adding the following settings to `/etc/wsl.conf`: ```ini [boot] @@ -32,8 +45,11 @@ Then restart WSL: ```bash wsl --shutdown +wsl ``` +### Optional: Using Podman (over Docker.IO) + Enable Podman socket: ```bash @@ -77,7 +93,10 @@ Verify: #curl --unix-socket /run/user/1000/podman/podman.sock http://localhost/_ping ``` -## 🧠 3. Configure Podman registry (to avoid interactive prompts) +_Also see [Podman for Windows](https://github.com/containers/podman/blob/main/docs/tutorials/podman-for-windows.md)._ + + +## 🧠 3. Configure Docker registry (to avoid interactive prompts) Edit or create `~/.config/containers/registries.conf`: @@ -88,6 +107,8 @@ registries = ["docker.io"] ## 🧰 4. Create .devcontainer Setup +This is allready pre-configured in the repo, but in case you want to set it up manually, follow these steps as a starting point. + Create `.devcontainer` folder in project root: ```bash @@ -152,7 +173,7 @@ USER $USERNAME ## 🚀 5. Reopen in Container -In WSL terminal navigate to project folder and open in VSCode: +Open the project directory in VSCode (in Ubuntu/WSL2): ```bash cd ~/git/med-plan-assistant @@ -181,9 +202,11 @@ Live reload and port forwarding should work automatically. ## 🧩 Notes -### 📁 WSL Filesystem Performance +### 🪟 When Using WSL2 -Performance is significantly better on native WSL filesystem (ext4) vs NTFS (/mnt/c/...). If you previously worked on NTFS, move or clone the repo to WSL filesystem: +#### Filesystem Performance + +Performance is significantly better on native WSL2 filesystem (ext4) vs NTFS (/mnt/c/...). If you previously worked on NTFS, move or clone the repo to WSL2 filesystem: ```bash git clone https://github.com/myusername/med-plan-assistant.git ~/git/med-plan-assistant @@ -212,5 +235,8 @@ Down to under 2 seconds on ext4 (`/home`): ### 🧠 Troubleshooting -- Podman socket not active: check `systemctl --user status podman.socket` - Dev container build hangs: check registry config and _Dev Containers_ log + +#### When Using Podman + +- Podman socket not active: check `systemctl --user status podman.socket`