@tontonlaforce/semantic-release-npm
v1.2.2
Published
[](https://gitlab.com/tontonlaforce/laravel-docker-app/-/commits/main) [.
- Custom Dockerfiles: Extends shared configurations to include development-specific tools.
To set up the development environment, follow the steps in the Getting Started section.
Getting Started
Follow these steps to set up and run the Laravel Docker Examples Project:
Prerequisites
Ensure you have Docker and Docker Compose installed. You can verify by running:
docker --version
docker compose versionIf these commands do not return the versions, install Docker and Docker Compose using the official documentation: Docker and Docker Compose.
Clone the Repository
git clone https://github.com/rw4lll/laravel-docker-examples.git
cd laravel-docker-examplesSetting Up the Development Environment
- Copy the .env.example file to .env and adjust any necessary environment variables:
cp .env.example .envHint: adjust the UID and GID variables in the .env file to match your user ID and group ID. You can find these by running id -u and id -g in the terminal.
- Start the Docker Compose Services:
docker compose -f compose.dev.yaml up -d- Install Laravel Dependencies:
docker compose -f compose.dev.yaml exec workspace bash
composer install
npm install
npm run dev- Run Migrations:
docker compose -f compose.dev.yaml exec workspace php artisan migrate- Access the Application:
Open your browser and navigate to http://localhost.
Usage
Here are some common commands and tips for using the development environment:
Accessing the Workspace Container
The workspace sidecar container includes Composer, Node.js, NPM, and other tools necessary for Laravel development (e.g. assets building).
docker compose -f compose.dev.yaml exec workspace bashRun Artisan Commands:
docker compose -f compose.dev.yaml exec workspace php artisan migrateRebuild Containers:
docker compose -f compose.dev.yaml up -d --buildStop Containers:
docker compose -f compose.dev.yaml downView Logs:
docker compose -f compose.dev.yaml logs -fFor specific services, you can use:
docker compose -f compose.dev.yaml logs -f webProduction Environment
The production environment is designed with security and efficiency in mind:
- Optimized Docker Images: Uses multi-stage builds to minimize the final image size, reducing the attack surface.
- Environment Variables Management: Sensitive data such as passwords and API keys are managed carefully to prevent exposure.
- User Permissions: Containers run under non-root users where possible to follow the principle of least privilege.
- Health Checks: Implemented to monitor the status of services and ensure they are functioning correctly.
- HTTPS Setup: While not included in this example, it's recommended to configure SSL certificates and use HTTPS in a production environment.
Deploying
The production image can be deployed to any Docker-compatible hosting environment, such as AWS ECS, Kubernetes, or a traditional VPS.
Technical Details
- PHP: Version 8.3 FPM is used for optimal performance in both development and production environments.
- Node.js: Version 22.x is used in the development environment for building frontend assets with Vite.
- PostgreSQL: Version 16 is used as the database in the examples, but you can adjust the configuration to use MySQL if preferred.
- Redis: Used for caching and session management, integrated into both development and production environments.
- Nginx: Used as the web server to serve the Laravel application and handle HTTP requests.
- Docker Compose: Orchestrates the services, simplifying the process of starting and stopping the environment.
- Health Checks: Implemented in the Docker Compose configurations and Laravel application to ensure all services are operational.
Contributing
Contributions are welcome! Whether you find a bug, have an idea for improvement, or want to add a new feature, your input is valuable.
How to Contribute
Fork the Repository:
Click the "Fork" button at the top right of this page to create your own copy of the repository.
Clone Your Fork:
git clone https://github.com/your-user-name/laravel-docker-examples.git
cd laravel-docker-examples- Create a Branch:
git checkout -b your-feature-branchMake Your Changes.
Implement your changes or additions.
Commit Your Changes:
git commit -m "Description of changes"- Push to Your Fork:
git push origin feature-branch- Submit a Pull Request:
- Go to the original repository.
- Click on "Pull Requests" and then "New Pull Request."
- Select your fork and branch, and submit your pull request.
License
This project is licensed under the MIT License. See the LICENSE file for more details.
