我已经成功使用 docker 容器化了我的基本 Yii2 应用程序,并且它在
localhost:8000
上运行。但是,我无法有效地使用该应用程序,因为它的大部分数据都存储在迁移文件中。有没有办法可以在运行后将迁移导出到 docker 中? (或执行期间)
这是我的 docker compose 文件
version: '2'
services:
php:
image: yiisoftware/yii2-php:7.1-apache
volumes:
- ~/.composer-docker/cache:/root/.composer/cache:delegated
- ./:/app:delegated
ports:
- '8000:80'
networks:
- my-network
db:
image: mysql:5.7
restart: always
environment:
- MYSQL_DATABASE=my-db
- MYSQL_PASSWORD=password
- MYSQL_ROOT_PASSWORD=password
ports:
- '3306:3306'
expose:
- '3306'
volumes:
- mydb:/var/lib/mysql
networks:
- my-network
memcached:
container_name: memcached
image: memcached:latest
ports:
- "0.0.0.0:11211:11211"
volumes:
restatdb:
networks:
my-network:
driver: bridge
和我的 Dockerfile
FROM alpine:3.4
ADD . /
COPY ./config/web.php ./config/web.php
COPY . /var/www/html
# Let docker create a volume for the session dir.
# This keeps the session files even if the container is rebuilt.
VOLUME /var/www/html/var/sessions
可以在docker中运行yii命令。首先让 yii2 容器在后台或终端的另一个选项卡中运行。 yii 命令可以使用交互界面上的
docker exec
来运行,这将让我们与正在运行的容器进行交互
sudo docker exec -i <container-ID> php yii migrate/up
您可以使用
获取容器IDsudo docker ps
你是如何使用 docker 对基本的 Yii2 应用程序进行容器化的?