使用 Docker 设置本地开发和 dockerizing 存储库?
Setting local development with Docker and dockerizing repositories?
我最近才开始学习 Docker,我想做的是将我现有的所有项目和所有新项目 docker 化。因此,基本上将我的本地开发环境设置为 Docker,但如果有意义,请将每个 project/repository 隔离开,因为一个 php-app 可能在 php5 上,另一个在 php5 上php7等
我之前通常做的是将我所有的 projects/repositories 放在 home/Repositories
文件夹下,所以我想遵循相同的模式,尽管每个项目文件夹将各自 运行环境。
我已经在 OS 上安装了 Docker(我正在 Ubuntu Linux 全新安装,所以没有 PHP 或其他任何东西已安装),但是我想问几个问题,因为我以前没有任何使用 Docker
的经验
据我了解,每个 project/repository 都应该在根目录中包含一个 docker-compose.yml
文件和一个 docker
文件夹,我将所有 Dockerfiles
都放在该文件夹中,是吗对吗?
- home
-- Repositories
--- a-laravel-project
---- docker // folder that has all required containers, like PHP, Mysql, Nginx conf etc etc
---- docker-compose.yml
---- index.php
--- another-oop-php-project
---- docker // folder that has all required containers, like PHP, Mysql, etc etc
---- docker-compose.yml
---- index.php
我是否还需要本地安装 Git?我想为了对我所有现有的存储库进行 docker 化,我需要先克隆它们,所以在这种情况下 git 是(预)必需的,对吗?
在此先致谢,如有任何反馈,我们将不胜感激。
你可以保留你的仓库目录。 Docker 根本不需要任何特殊布局。
比方说,在您 docker 之前的世界观中,您的环境是:
- 存储库
- 项目 1
- index.php
- 项目2
- index.php
然后向每个项目添加一个 Docker 文件(如果需要 docker-compose.yml):
- 存储库
- 项目 1
- index.php
- Docker文件
- 项目2
- index.php
- Docker文件
你提到一个"folder that has all required containers"。这不太对。您所有的 docker 容器都将位于 Docker 自己的目录结构中(您不想手动弄乱)。您需要关心的是如何将依赖项构建到每个项目的 docker 容器中。
假设您的项目 1 将仅使用 php,因此您可以使用官方 php docker 容器 (https://hub.docker.com/_/php/)。
那么您的 Docker 文件可能类似于
FROM php:7.0-cli
COPY index.php /usr/src/myapp
WORKDIR /usr/src/myapp
CMD [ "php", "./index.php" ]
或者如果你想从 ubuntu 或其他东西构建你自己的。您从基础 ubuntu 映像开始,然后在 ubuntu.
上安装您需要的依赖项
FROM ubuntu
RUN apt-get install php # Or whatever is appropriate, I don't use php
WORKDIR /usr/src/myapp
CMD [ "php", "./index.php" ]
然后当你在 project1
目录中并想要构建你的 docker 容器时。那就运行吧。
docker build -t project1:latest .
docker run project1:latest
源文件注意事项:
希望将源文件保存在 docker 容器之外,但 运行 将测试服务器保存在 docker 容器中是很常见的。在这种情况下,您需要执行以下操作:
docker run \
-v /home/repositories/project1:/project1 \
php:7.0-cli \
php /project1/index.php
该绑定将您的源代码目录从您的机器安装到您 运行 php 服务器所在的容器中。另外不要忘记,如果您 运行 在 docker 容器中安装开发服务器,您需要绑定端口,以便您可以连接到本地主机上的端口并将其转发到容器.
如果您使用 php,您可能有兴趣在 https://hub.docker.com/_/php/ 上阅读很多有用的信息。
Git,我仍然会在您的主机上安装,特别是如果按照我的描述将您的源代码安装到容器中
我最近才开始学习 Docker,我想做的是将我现有的所有项目和所有新项目 docker 化。因此,基本上将我的本地开发环境设置为 Docker,但如果有意义,请将每个 project/repository 隔离开,因为一个 php-app 可能在 php5 上,另一个在 php5 上php7等
我之前通常做的是将我所有的 projects/repositories 放在 home/Repositories
文件夹下,所以我想遵循相同的模式,尽管每个项目文件夹将各自 运行环境。
我已经在 OS 上安装了 Docker(我正在 Ubuntu Linux 全新安装,所以没有 PHP 或其他任何东西已安装),但是我想问几个问题,因为我以前没有任何使用 Docker
的经验据我了解,每个 project/repository 都应该在根目录中包含一个 docker-compose.yml
文件和一个 docker
文件夹,我将所有 Dockerfiles
都放在该文件夹中,是吗对吗?
- home
-- Repositories
--- a-laravel-project
---- docker // folder that has all required containers, like PHP, Mysql, Nginx conf etc etc
---- docker-compose.yml
---- index.php
--- another-oop-php-project
---- docker // folder that has all required containers, like PHP, Mysql, etc etc
---- docker-compose.yml
---- index.php
我是否还需要本地安装 Git?我想为了对我所有现有的存储库进行 docker 化,我需要先克隆它们,所以在这种情况下 git 是(预)必需的,对吗?
在此先致谢,如有任何反馈,我们将不胜感激。
你可以保留你的仓库目录。 Docker 根本不需要任何特殊布局。
比方说,在您 docker 之前的世界观中,您的环境是:
- 存储库
- 项目 1
- index.php
- 项目2
- index.php
- 项目 1
然后向每个项目添加一个 Docker 文件(如果需要 docker-compose.yml):
- 存储库
- 项目 1
- index.php
- Docker文件
- 项目2
- index.php
- Docker文件
- 项目 1
你提到一个"folder that has all required containers"。这不太对。您所有的 docker 容器都将位于 Docker 自己的目录结构中(您不想手动弄乱)。您需要关心的是如何将依赖项构建到每个项目的 docker 容器中。
假设您的项目 1 将仅使用 php,因此您可以使用官方 php docker 容器 (https://hub.docker.com/_/php/)。
那么您的 Docker 文件可能类似于
FROM php:7.0-cli
COPY index.php /usr/src/myapp
WORKDIR /usr/src/myapp
CMD [ "php", "./index.php" ]
或者如果你想从 ubuntu 或其他东西构建你自己的。您从基础 ubuntu 映像开始,然后在 ubuntu.
上安装您需要的依赖项FROM ubuntu
RUN apt-get install php # Or whatever is appropriate, I don't use php
WORKDIR /usr/src/myapp
CMD [ "php", "./index.php" ]
然后当你在 project1
目录中并想要构建你的 docker 容器时。那就运行吧。
docker build -t project1:latest .
docker run project1:latest
源文件注意事项:
希望将源文件保存在 docker 容器之外,但 运行 将测试服务器保存在 docker 容器中是很常见的。在这种情况下,您需要执行以下操作:
docker run \
-v /home/repositories/project1:/project1 \
php:7.0-cli \
php /project1/index.php
该绑定将您的源代码目录从您的机器安装到您 运行 php 服务器所在的容器中。另外不要忘记,如果您 运行 在 docker 容器中安装开发服务器,您需要绑定端口,以便您可以连接到本地主机上的端口并将其转发到容器.
如果您使用 php,您可能有兴趣在 https://hub.docker.com/_/php/ 上阅读很多有用的信息。
Git,我仍然会在您的主机上安装,特别是如果按照我的描述将您的源代码安装到容器中