开发环境中的Docker

时间:2016-03-09 04:57:16

标签: linux windows apache docker gitlab

我希望设置我的开发机器(一台物理机器),为我提供一种管理运行.NET和PHP开发需求的方法。这很容易,但是当我需要Apache和IIS时出现问题,而对于版本控制,我喜欢gitlab ce,它不适用于Windows。所以,我的主机是win10,我使用一个单独的linux盒来运行我的gitlabapache

但是现在这台机器烧坏了,我正在寻找一种方法在一台机器上运行所有这些,因为我不想投资于不同的机器。我正在尝试研究Docker,因为它似乎解决了我的问题(也不是很确定)。因此,我在Win 10上使用Docker安装了Hyper-V,并且能够在CentOS容器中运行docker并安装ApacheGitLab超过CentOs

但是一旦退出,就会消失。我知道我需要保存机器状态或docker客户端状态,但我没有找到办法,或者对我来说理解起来相当复杂。我还没有找到一种方法,当我启动我的开发机器时,如何启动CentOS机器并使其在网络上可用。我在docker文档和各种博客论坛中搜索。

我的问题是:由于我现在不太了解docker,我的想法是在场景之上使用它好吗?这有什么更好的方法吗?如果你可以协助我的问题对我有好处,但如果不是我的正确方向就引导我。

哦,我不关心硬件,因为我的机器现在支持我的要求。

1 个答案:

答案 0 :(得分:1)

您可以在“Run GitLab on a USB Stick with Docker”中看到在Docker容器中运行GitLab的示例

它使用USB记忆棒,但您可以使用(Windows)主机上的文件夹。

docker-compose.yml

gitlab:  
 container_name: gitlab
 image: gitlab/gitlab-ce:8.5.3-ce.0
 hostname: gitlab
 environment:
   GITLAB_OMNIBUS_CONFIG: |
     external_url 'http://127.0.0.1:8050'
     gitlab_rails['gitlab_shell_ssh_port'] = 522
 ports:
  - "8050:8050"
  - "522:22"
 volumes:
  - /media/elton/usb-gitlab/gitlab/config:/etc/gitlab
  - /media/elton/usb-gitlab/gitlab/logs:/var/log/gitlab
  - /media/elton/usb-gitlab/gitlab/data:/var/opt/gitlab
 privileged: true

您可能不需要特权:true,因为您不需要访问USB密钥 并将/media/elton/usb-gitlab/gitlab替换为Windows路径(以/c/Users作为/c/Users/yourLogin/path/to/gitlab开头,因为只有该文件夹在boot2docker VM中自动挂载)

然后:

cd /c/Users/yourLogin/path/to/gitlab  
docker-compose up -d  

在你的回购中,你会添加:

git remote add origin ssh://git@127.0.0.1:522/<project>/<yourRepo>.git  

您可以访问http://127.0.0.1:8050/以查看GitLab网络界面。