Skip to content

Instantly share code, notes, and snippets.

@michalkortas
Last active November 16, 2021 08:26
Show Gist options
  • Save michalkortas/e952a2f49595ea99a89c49bf5a70cb8e to your computer and use it in GitHub Desktop.
Save michalkortas/e952a2f49595ea99a89c49bf5a70cb8e to your computer and use it in GitHub Desktop.
migrate Laravel project to Docker
##### GIT clone
git clone project from github
##### update .env to:
APP_URL=http://localhost
APP_SERVICE="image.name"
APP_PORT=80
FORWARD_DB_PORT=3306
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=database
DB_USERNAME=sail
DB_PASSWORD=password
MAIL_HOST=mailhog
MAIL_PORT=1025
##### Run this script in your project dir
docker run --rm \
-u "$(id -u):$(id -g)" \
-v $(pwd):/var/www/html \
-w /var/www/html \
laravelsail/php80-composer:latest \
composer install --ignore-platform-reqs
##### sail install if needed
composer require laravel/sail --dev --ignore-platform-reqs
##### sail install
php artisan sail:install
##### update docker compose file
laravel.test -> image.name (from env)
context: ./vendor/laravel/sail/runtimes/7.4
#or
context: ./vendor/laravel/sail/runtimes/8.0
#or
context: ./vendor/laravel/sail/runtimes/8.1
image: sail-7.4/app
#or
image: sail-8.0/app
#or
image: sail-8.1/app
# if phpmyadmin needed add to services
phpmyadmin:
image: 'phpmyadmin:latest'
ports:
- '8080:80'
environment:
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
UPLOAD_LIMIT: 1024M
links:
- "mysql:db"
depends_on:
- mysql
networks:
- sail
### mailhog
mailhog:
image: 'mailhog/mailhog:latest'
ports:
- '${FORWARD_MAILHOG_PORT:-1025}:1025'
- '${FORWARD_MAILHOG_DASHBOARD_PORT:-8025}:8025'
networks:
- sail
##### sail up
./vendor/bin/sail up
##### alias for 'sail' command
# create or update file ~/.bash_aliases and add:
alias sail='./vendor/bin/sail'
# save and re-open terminal
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment