Setting up Laravel with Docker : Part 3

“Containers stacked on top of each other.” by frank mckenna on Unsplash

Creating the script

#!/bin/bash -e


SRC_DIR=~/laravel
DOCKER="docker-compose run --rm -w /var/www/html app"

function usage {
echo -e "Laravel Docker CLI - Tool to work with laravel docker container.\n"
echo -e "usage: dev [command]"
echo -e " or: dev [command] [arguments]"
echo -e " or: dev [docker_commands] [arguments]\n"
echo "Arguments:"
echo " start Start docker container"
echo " stop Stop docker container"
echo " status Check status of docker container"
echo " ssh SSH into the docker container."
echo " composer Run composer command in the docker container."
echo " php Run php cli in the docker container."
echo " help Display usage"
}

if [ $# -gt 0 ]; then
if [ "$1" == "ssh" ]; then
docker exec -it laravel_app_1 bash
elif [ "$1" == "start" ]; then
docker-compose up -d
elif [ "$1" == "stop" ]; then
docker-compose down
elif [ "$1" == "status" ]; then
docker-compose ps
elif [ "$1" == "php" ] || [ "$1" == "composer" ]; then
$DOCKER "$@"
elif [ "$1" == "help" ] || [ "$1" == "-h" ] || [ "$1" == "--help" ]; then
usage; exit
else
usage; exit
fi
else
usage; exit
fi

Usage

chmod +x container
./container -h
Laravel Docker CLI - Tool to work with laravel docker container.

usage: dev [command]
or: dev [command] [arguments]
or: dev [docker_commands] [arguments]

Arguments:
start Start docker container
stop Stop docker container
status Check status of docker container
ssh SSH into the docker container.
composer Run composer command in the docker container.
php Run php cli in the docker container.
help Display usage
./container composer install 
./container php -v

Explanation of script

#!/bin/bash -e
SRC_DIR=~/laravel 
DOCKER="docker-compose run --rm -w /var/www/html app"
function usage {
echo -e "Laravel Docker CLI - Tool to work with laravel docker container.\n"
echo -e "usage: dev [command]"
echo -e " or: dev [command] [arguments]"
echo -e " or: dev [docker_commands] [arguments]\n"
echo "Arguments:"
echo " start Start docker container"
echo " stop Stop docker container"
echo " status Check status of docker container"
echo " ssh SSH into the docker container."
echo " composer Run composer command in the docker container."
echo " php Run php cli in the docker container."
echo " help Display usage"
}
if [ $# -gt 0 ]; then
...
else
usage; exit;
fi
if [ "$1" == "ssh" ]; then
docker exec -it laravel_app_1 bash
elif [ "$1" == "php" ] || [ "$1" == "composer" ]; then
$DOCKER "$@"
./container php -v
docker-compose run --rm -w /var/www/html app php -v

Conclusion

Related posts

--

--

Lead Software Engineer at A Cloud Guru

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store