DEV Community

José Córdova
José Córdova

Posted on • Edited on

42 14

Deploy a RESTful API using Laravel and Docker

docker-laravel-api-dev

Getting Started

  • API Laravel Boilerplate 5.5
  • Apache 2
  • MySQL
  • Xdebug
  • Docker

You can manage a RESTful API in the fastest, simplest and funniest way! and with open source code dependencies.

However you can contribute for better performance, the goal is to focus on the code avoiding the configurations and having docker installed.

Prerequisites

Environments

Dev or Local Mode

  • docker-compose-dev.yml: generate automatically folders and require-dev dependencies on your local workspace including Xdebug. Note: the yaml file has a key called:"XDEBUG_MODE", this yaml by default has the value true (1) to install it.

You can appreciate the dependencies generated automatically on your workspace!

Play with Docker Mode

Play With Docker

  • docker-compose-pwd.yml: you can use it to visualize this environment and test it, however, you should see the container lists to verify the HEALTHCHECK.
# container lists
docker ps
# make sure that the docker dockerlaravelapidev_php_1 or php container is (healthy),
normally the process begins in starting mode (health: starting)
Enter fullscreen mode Exit fullscreen mode

Production Mode

  • docker-compose-prod.yml: if you are going to use this yaml, make sure to generate the migrations before!, you can modify the entrypoint to generate them.

Deployment

Docker Environments

Clone this repository and run the following commands based on your orchestrator.

Swarm Mode

Clone this repository and run the following commands:

cd docker-laravel-api-dev/
docker stack deploy -c docker-compose-dev.yml docker-laravel-api-dev
# wait for the HEALTHCHECK in healthy mode
Enter fullscreen mode Exit fullscreen mode

Docker Compose

Clone this repository and run the following commands:

cd docker-laravel-api-dev/
docker-compose -f docker-compose-dev.yml up --build -d 
or to see the logs 
docker-compose -f docker-compose-dev.yml up 
# wait for the HEALTHCHECK in healthy mode
Enter fullscreen mode Exit fullscreen mode

Running the tests

You have a Travis Pipeline to apply Continous Integration, and other technology to test this environment.

You can modify the runtests.sh from the scripts folder

Insert jobs, instructions builds in this pipeline

Github Repository

docker-laravel-api-dev

API Boilerplate Reference

Author

License

This project is licensed under the MIT License - see the LICENSE.md file for more details.

AWS Q Developer image

Your AI Code Assistant

Generate and update README files, create data-flow diagrams, and keep your project fully documented. Built to handle large projects, Amazon Q Developer works alongside you from idea to production code.

Get started free in your IDE

Top comments (1)

Collapse
 
josepadron712 profile image
José Padrón

Great post

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay