使用 laravel sail 添加新服务
Add new service using laravel sail
我有一个用 composer 创建的 laravel 8 项目。然后我通过composer require laravel/sail
添加了laravelsail,然后执行命令php artisan sail:install
。
在 sail up
命令之后,只创建了 mysql
个容器,一切正常。但现在我想将 redis
添加到我的 docker 容器中。我怎样才能做到这一点?我对 Docker 一无所知,但 laravel sail 使 Docker 变得非常容易使用。我想在 laravel sail 的帮助下添加 redis
。有什么办法吗?
您可以编辑 docker-compose.yml
在services
laravel.test:
...
depends_on:
- mysql
- redis
...
redis:
image: 'redis:alpine'
ports:
- '${FORWARD_REDIS_PORT:-6379}:6379'
volumes:
- 'sailredis:/data'
networks:
- sail
healthcheck:
test: ["CMD", "redis-cli", "ping"]
然后最后,在 volumes:
volumes:
sailmysql:
driver: local
sailredis:
driver: local
您也可以通过
开始一个全新的项目
curl -s "https://laravel.build/example-app?with=mysql,redis" | bash
然后引用生成的docker-compose.yml
编辑完成后保存运行./vendor/bin/sail build
然后saild up -d
我知道这不是最好的解决方案,但我认为它很简单。
使用以下行更新您的 docker-compose.yml
文件:
version: '3'
services:
laravel.test:
build:
context: ./vendor/laravel/sail/runtimes/8.0
dockerfile: Dockerfile
args:
WWWGROUP: '${WWWGROUP}'
image: sail-8.0/app
extra_hosts:
- 'host.docker.internal:host-gateway'
ports:
- '${APP_PORT:-80}:80'
environment:
WWWUSER: '${WWWUSER}'
LARAVEL_SAIL: 1
XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}'
XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}'
volumes:
- '.:/var/www/html'
networks:
- sail
depends_on:
- mysql
- redis
mysql:
image: 'mysql:8.0'
ports:
- '${FORWARD_DB_PORT:-3306}:3306'
environment:
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
MYSQL_DATABASE: '${DB_DATABASE}'
MYSQL_USER: '${DB_USERNAME}'
MYSQL_PASSWORD: '${DB_PASSWORD}'
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
volumes:
- 'sailmysql:/var/lib/mysql'
networks:
- sail
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-p${DB_PASSWORD}"]
retries: 3
timeout: 5s
redis:
image: 'redis:alpine'
ports:
- '${FORWARD_REDIS_PORT:-6379}:6379'
volumes:
- 'sailredis:/data'
networks:
- sail
healthcheck:
test: ["CMD", "redis-cli", "ping"]
retries: 3
timeout: 5s
networks:
sail:
driver: bridge
volumes:
sailmysql:
driver: local
sailredis:
driver: local
您可以再次发出命令 php artisan sail:install
现在select你需要的服务,用,
分开
例如0, 3, 7
这将更新您的 docker-compose.yml
文件并添加 MySQL, Redis, Mailhog
的行。不过,它可能会覆盖您的一些旧设置!
一旦您再次开始航行,它将拉取服务,您就可以开始了。
我有一个用 composer 创建的 laravel 8 项目。然后我通过composer require laravel/sail
添加了laravelsail,然后执行命令php artisan sail:install
。
在 sail up
命令之后,只创建了 mysql
个容器,一切正常。但现在我想将 redis
添加到我的 docker 容器中。我怎样才能做到这一点?我对 Docker 一无所知,但 laravel sail 使 Docker 变得非常容易使用。我想在 laravel sail 的帮助下添加 redis
。有什么办法吗?
您可以编辑 docker-compose.yml
在services
laravel.test:
...
depends_on:
- mysql
- redis
...
redis:
image: 'redis:alpine'
ports:
- '${FORWARD_REDIS_PORT:-6379}:6379'
volumes:
- 'sailredis:/data'
networks:
- sail
healthcheck:
test: ["CMD", "redis-cli", "ping"]
然后最后,在 volumes:
volumes:
sailmysql:
driver: local
sailredis:
driver: local
您也可以通过
开始一个全新的项目curl -s "https://laravel.build/example-app?with=mysql,redis" | bash
然后引用生成的docker-compose.yml
编辑完成后保存运行./vendor/bin/sail build
然后saild up -d
我知道这不是最好的解决方案,但我认为它很简单。
使用以下行更新您的 docker-compose.yml
文件:
version: '3'
services:
laravel.test:
build:
context: ./vendor/laravel/sail/runtimes/8.0
dockerfile: Dockerfile
args:
WWWGROUP: '${WWWGROUP}'
image: sail-8.0/app
extra_hosts:
- 'host.docker.internal:host-gateway'
ports:
- '${APP_PORT:-80}:80'
environment:
WWWUSER: '${WWWUSER}'
LARAVEL_SAIL: 1
XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}'
XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}'
volumes:
- '.:/var/www/html'
networks:
- sail
depends_on:
- mysql
- redis
mysql:
image: 'mysql:8.0'
ports:
- '${FORWARD_DB_PORT:-3306}:3306'
environment:
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
MYSQL_DATABASE: '${DB_DATABASE}'
MYSQL_USER: '${DB_USERNAME}'
MYSQL_PASSWORD: '${DB_PASSWORD}'
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
volumes:
- 'sailmysql:/var/lib/mysql'
networks:
- sail
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-p${DB_PASSWORD}"]
retries: 3
timeout: 5s
redis:
image: 'redis:alpine'
ports:
- '${FORWARD_REDIS_PORT:-6379}:6379'
volumes:
- 'sailredis:/data'
networks:
- sail
healthcheck:
test: ["CMD", "redis-cli", "ping"]
retries: 3
timeout: 5s
networks:
sail:
driver: bridge
volumes:
sailmysql:
driver: local
sailredis:
driver: local
您可以再次发出命令 php artisan sail:install
现在select你需要的服务,用,
例如0, 3, 7
这将更新您的 docker-compose.yml
文件并添加 MySQL, Redis, Mailhog
的行。不过,它可能会覆盖您的一些旧设置!
一旦您再次开始航行,它将拉取服务,您就可以开始了。