如何将 Yii2 迁移导出到 docker 容器

问题描述 投票:0回答:2

我已经成功使用 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 docker-compose dockerfile yii2-basic-app
2个回答
1
投票

可以在docker中运行yii命令。首先让 yii2 容器在后台或终端的另一个选项卡中运行。 yii 命令可以使用交互界面上的

docker exec
来运行,这将让我们与正在运行的容器进行交互

sudo docker exec -i <container-ID> php yii migrate/up

您可以使用

获取容器ID

sudo docker ps


0
投票

你是如何使用 docker 对基本的 Yii2 应用程序进行容器化的?

© www.soinside.com 2019 - 2024. All rights reserved.