Multi-language containerized Hello World project using Docker Compose.
Each service runs in its own container, showcasing how different programming languages can be orchestrated together.
docker_multilang_project/
├── java/ # Java service
│ └── Hello.java
├── c/ # C service
│ ├── hello.c
│ └── hello # Compiled binary
├── golang/ # Go service
│ └── hello.go
├── node/ # Node.js service
│ └── hello.js
├── php/ # PHP service
│ └── hello.php
├── python/ # Python service
│ └── hello.py
├── ruby/ # Ruby service
│ └── hello.rb
├── docker-compose.yml # Docker Compose configuration
└── README.md # Documentation
# Clone repository
git clone https://github.com/BradleyMatera/docker_multilang_project.git
cd docker_multilang_project
# Start all containers
docker-compose up
docker-compose down
Language | Directory | Command | Container Name |
---|---|---|---|
🐘 PHP | php/ |
php hello.php |
php_container |
💎 Ruby | ruby/ |
ruby hello.rb && tail -f /dev/null |
ruby_container |
🐍 Python | python/ |
python hello.py |
python_container |
🟢 Node.js | node/ |
node hello.js |
nodejs_container |
⚙️ C | c/ |
gcc -o hello hello.c && ./hello |
c_container |
☕ Java | java/ |
java Hello.java |
java_container |
🐹 Go | golang/ |
go run hello.go |
golang_container |
▶ Start Services
docker-compose up
⏹ Stop Services
docker-compose down
- Create a directory for the new language (e.g.,
perl/
). - Add your script (e.g.,
hello.pl
). - Update
docker-compose.yml
with a new service entry. - Restart containers:
docker-compose up
- Uses a custom bridge network (
asl_network
) - Enables communication between containers when required.
- Volumes map local files into containers.
- Working Directories ensure commands run in correct paths.
- Commands define the execution behavior of each container.
Contributions are welcome!
Fork the repo → Create a branch → Submit a PR.
(click to watch the demo video)