在 Docker 中编辑源代码
Edit source code in Docker
我在我的本地机器上 运行 一个 Drupal 站点及其 MySQL 数据库,源代码被分成许多 Github 个存储库(每个模块一个)。
由于在新机器上制作网站运行对于所有存储库和迁移数据库来说非常耗时,我在想Docker是否可以提供帮助。几个问题:
- 能否Docker封装整个 drupal 站点,包括已经存在一些数据的数据库?
- 如果我从 docker 中提取图像,我可以编辑原始 Drupal 源代码吗?怎么样?
Can Docker encapsulate the entire drupal site, including the database with some data already there?
是的。声明容器时,使用选项 -v $ext_source:$int_source
将卷从主机挂载到 VM。示例:
docker run ... -v ~/sql/mysite:/srv/sql -v ~/dev/mysite:/srv/code ... Arturo/mysite.dev:0.1
这会将两个目录从您的本地主机挂载到 VM,您只需将数据库指向 Docker 容器内即可使用挂载的数据。
顺便说一句,挂载的目录可以实时编辑。因此,如果您在容器内挂载源代码目录,然后在主机上编辑代码,您的更改将在容器内可用。
以下 compose 文件可用于 运行 Drupal。您可以通过更改目录卷映射来调整它。
docker-compose.yml
db:
image: mysql
environment:
- MYSQL_ROOT_PASSWORD=letmein
- MYSQL_DATABASE=drupal
- MYSQL_USER=drupal
- MYSQL_PASSWORD=drupal
volumes:
- /var/lib/mysql
web:
image: drupal
links:
- db:mysql
ports:
- "8080:80"
volumes:
- /var/www/html/sites
- /var/www/private
我在我的本地机器上 运行 一个 Drupal 站点及其 MySQL 数据库,源代码被分成许多 Github 个存储库(每个模块一个)。
由于在新机器上制作网站运行对于所有存储库和迁移数据库来说非常耗时,我在想Docker是否可以提供帮助。几个问题:
- 能否Docker封装整个 drupal 站点,包括已经存在一些数据的数据库?
- 如果我从 docker 中提取图像,我可以编辑原始 Drupal 源代码吗?怎么样?
Can Docker encapsulate the entire drupal site, including the database with some data already there?
是的。声明容器时,使用选项 -v $ext_source:$int_source
将卷从主机挂载到 VM。示例:
docker run ... -v ~/sql/mysite:/srv/sql -v ~/dev/mysite:/srv/code ... Arturo/mysite.dev:0.1
这会将两个目录从您的本地主机挂载到 VM,您只需将数据库指向 Docker 容器内即可使用挂载的数据。
顺便说一句,挂载的目录可以实时编辑。因此,如果您在容器内挂载源代码目录,然后在主机上编辑代码,您的更改将在容器内可用。
以下 compose 文件可用于 运行 Drupal。您可以通过更改目录卷映射来调整它。
docker-compose.yml
db:
image: mysql
environment:
- MYSQL_ROOT_PASSWORD=letmein
- MYSQL_DATABASE=drupal
- MYSQL_USER=drupal
- MYSQL_PASSWORD=drupal
volumes:
- /var/lib/mysql
web:
image: drupal
links:
- db:mysql
ports:
- "8080:80"
volumes:
- /var/www/html/sites
- /var/www/private