我希望设置我的开发机器(一台物理机器),为我提供一种管理运行.NET和PHP开发需求的方法。这很容易,但是当我需要Apache和IIS时出现问题,而对于版本控制,我喜欢gitlab ce
,它不适用于Windows。所以,我的主机是win10,我使用一个单独的linux盒来运行我的gitlab
和apache
。
但是现在这台机器烧坏了,我正在寻找一种方法在一台机器上运行所有这些,因为我不想投资于不同的机器。我正在尝试研究Docker,因为它似乎解决了我的问题(也不是很确定)。因此,我在Win 10上使用Docker
安装了Hyper-V
,并且能够在CentOS
容器中运行docker
并安装Apache
和GitLab
超过CentOs
但是一旦退出,就会消失。我知道我需要保存机器状态或docker客户端状态,但我没有找到办法,或者对我来说理解起来相当复杂。我还没有找到一种方法,当我启动我的开发机器时,如何启动CentOS机器并使其在网络上可用。我在docker文档和各种博客论坛中搜索。
我的问题是:由于我现在不太了解docker,我的想法是在场景之上使用它好吗?这有什么更好的方法吗?如果你可以协助我的问题对我有好处,但如果不是我的正确方向就引导我。
哦,我不关心硬件,因为我的机器现在支持我的要求。
答案 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网络界面。