feat(devcontainer): upgrade dev environment with better prompts, extensions, and configs (#95)

* chore(devcontainer): optimize Dockerfile for Ruby dev environment

* chore(devcontainer): update container name and improve VSCode settings

- Rename devcontainer from 'Maybe' to 'Sure'
- Add GIT_EDITOR env var for VSCode integration
- Add Shopify Ruby extensions pack

* feat(devcontainer): add custom Bash prompt with Git info

- Implement Git branch, status markers in prompt
- Show username, current dir, and Git info with colors
- Mount custom .bashrc into container for prompt enhancements

* fix(devcontainer): improve branch detection & status markers in prompt

- Support detached HEAD by showing short SHA
- Show detailed git states: rebase, merge, bisect, am
- Fix prompt formatting and trailing colors

* Better solution to GitHub Codespaces CSRF issue

* feat(devcontainer): add Git autocompletion support in bashrc

* refactor(devcontainer): reorder volumes and service settings

- Added volume mounts for workspace & bundle cache to worker service.

---------

Co-authored-by: Juan José Mata <juanjo.mata@gmail.com>
This commit is contained in:
Himank Dave
2025-08-10 01:53:46 -04:00
committed by GitHub
parent b7d9c89471
commit 1ae9e3e8fb
5 changed files with 181 additions and 30 deletions

View File

@@ -16,19 +16,15 @@ services:
build:
context: ..
dockerfile: .devcontainer/Dockerfile
volumes:
- ./.bashrc:/root/.bashrc:ro,cached
- ..:/workspace:cached
- bundle_cache:/bundle
ports:
- "3000:3000"
command: sleep infinity
environment:
<<: *rails_env
depends_on:
- db
- redis
@@ -37,6 +33,9 @@ services:
build:
context: ..
dockerfile: .devcontainer/Dockerfile
volumes:
- ..:/workspace:cached
- bundle_cache:/bundle
command: bundle exec sidekiq
restart: unless-stopped
environment:
@@ -46,20 +45,21 @@ services:
redis:
image: redis:latest
volumes:
- redis-data:/data
ports:
- "6379:6379"
restart: unless-stopped
volumes:
- redis-data:/data
db:
image: postgres:latest
restart: unless-stopped
volumes:
- postgres-data:/var/lib/postgresql/data
environment:
<<: *db_env
ports:
- "5432:5432"
restart: unless-stopped
environment:
<<: *db_env
volumes:
postgres-data: