当MySQL Docker容器启动时,Laravel迁移数据库可以通过以下步骤完成:
version: '3'
services:
db:
image: mysql:latest
restart: always
environment:
MYSQL_ROOT_PASSWORD: your_mysql_root_password
MYSQL_DATABASE: your_database_name
MYSQL_USER: your_mysql_user
MYSQL_PASSWORD: your_mysql_password
volumes:
- ./mysql-data:/var/lib/mysql
app:
build:
context: .
dockerfile: Dockerfile
restart: always
ports:
- 8000:8000
depends_on:
- db
volumes:
- .:/var/www/html
在上述配置中,我们定义了一个名为db的MySQL服务和一个名为app的Laravel应用程序服务。请确保将your_mysql_root_password
、your_database_name
、your_mysql_user
和your_mysql_password
替换为实际的值。
FROM php:7.4-apache
RUN docker-php-ext-install pdo_mysql
WORKDIR /var/www/html
COPY . .
RUN composer install
RUN chown -R www-data:www-data /var/www/html/storage
CMD php artisan migrate && apache2-foreground
在上述配置中,我们使用了官方的PHP 7.4 Apache镜像作为基础镜像,并安装了pdo_mysql扩展。然后,我们将当前目录下的所有文件复制到容器的/var/www/html目录中,并运行composer install安装依赖。最后,我们将/var/www/html/storage目录的所有权设置为www-data用户,并在容器启动时运行php artisan migrate命令来执行数据库迁移。
docker-compose up -d
该命令将根据docker-compose.yml文件中的配置启动MySQL和Laravel应用程序的容器。
docker-compose exec app bash
php artisan migrate
该命令将执行Laravel应用程序中定义的所有数据库迁移。
至此,当MySQL Docker容器启动时,Laravel迁移数据库的过程就完成了。你可以根据实际需求进行相应的配置和调整。
领取专属 10元无门槛券
手把手带您无忧上云