使用 Docker 在 Windows 上安装 gitlab

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

我搜索了很多,发现

GitLab Community Edition
没有安装在
Windows
上,所以现在我想借助Docker来安装它。我不知道这可能吗?我该怎么做?

windows docker gitlab
6个回答
9
投票
  1. 您需要安装适用于 Windows 的 Docker。

  2. 为 Docker 共享驱动器(在 Docker 的设置 > 共享驱动器中)。例如,驱动器 E:

  1. 然后,您需要在E盘上创建3个目录:(

    e:\gitlab\config
    ,
    e:\gitlab\logs
    ,
    e:\gitlab\data
    )

  2. 在命令提示符下,运行:

    docker run --detach --hostname gitlab.yourdomain.ru 
    --publish 443:443 --publish 80:80 --publish 22:22 --name gitlab 
    --restart always --volume e:\gitlab\config:/etc/gitlab 
    --volume e:\gitlab\logs:/var/log/gitlab 
    --volume e:\gitlab\data:/var/opt/gitlab gitlab/gitlab-ce:latest
    

就是这样!您现在已经成功运行 GitLab 镜像了。


3
投票

是的,您可以使用 Docker 在 Windows 上运行 gitlab-ce。首先,确保 Windows 上安装了 docker,否则安装它

有关如何使用 Docker 运行 gitlab 的详细文档可以在 GitLab Docker images 下找到,包括如何访问 Web 界面。


3
投票

您可以从 在不同端口上公开 GitLab 部分查看 gitlab 文档。

开始安装之前,在“gitlab”文件夹中创建 3 个文件夹,分别命名为“config”、“data”、“logs”。并使用 docker run 命令运行你的 gitlab-ce 镜像。Gitlab 应该首先运行。

请注意,我将使用 8082 端口作为 gitlab 服务器。您可以使用任何端口号更改它。

1-打开cmd并显示您的IP地址。您需要在网络适配器中查找IPv4地址:

ipconfig

2-使用以下命令运行 docker-ce 映像:

docker run --detach --hostname YOUR-IP-ADRESS --publish 8082:8082 --publish 2282:22 --name gitlab --restart always --volume D:\DevOps\Gitlab/config:/etc/gitlab --volume D:\DevOps\Gitlab/logs:/var/log/gitlab --volume D:\DevOps\Gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest

3-在 docker 终端(在 docker gui 应用程序中按“cli”按钮)转到此处:

cd etc/gitlab

nano gitlab.rb

4-转到 gitlab.rb 的文件末尾并写入以下行:

external_url "http://your-ip-address:8082"

gitlab_rails['gitlab_shell_ssh_port'] = 2282

5-保存并关闭 gitlab.rb 文件后,输入以下代码进行重新配置:

gitlab-ctl reconfigure

6-删除 docker 容器并再次使用此命令运行:

docker run --detach --hostname YOUR-IP-ADRESS --publish 8082:8082 --publish 2282:22 --name gitlab --restart always --volume D:\DevOps\Gitlab/config:/etc/gitlab --volume D:\DevOps\Gitlab/logs:/var/log/gitlab --volume D:\DevOps\Gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest


1
投票

我在这里找到了解决方案,在 Docker for Windows 中安装时存在与卷相关的问题

https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/2280


1
投票

使用以下 docker-compose 文件:

web:
  image: 'gitlab/gitlab-ce:13.7.1-ce'
  restart: always
  hostname: 'localhost'
  environment:
    GITLAB_OMNIBUS_CONFIG: |
#KO      gitlab_rails['initial_root_password'] = 'adminadmin'
      gitlab_rails['gitlab_shell_ssh_port'] = 2222
      external_url 'http://localhost'
  ports:
    - '8185:80'
    - '1443:443'
    - '2222:22'
  volumes:
    - '/srv/gitlab/config:/etc/gitlab'
    - '/srv/gitlab/logs:/var/log/gitlab'
#important here: do not mount /var/opt/gitlab but /var/opt as stated here: 
# https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/2280
    - '/srv/gitlab/data:/var/opt'

执行 (cygwin)

docker ps | grep gitlab
直到显示状态(健康),然后打开浏览器 http://localhost:8185

如果第一次没有要求您更改 root 密码, 像这样设置(cygwin):

docker exec -it $(docker ps | grep gitlab | awk '{print $1}') bash

root@dev:/# gitlab-rails console -e production
--------------------------------------------------------------------------------
 Ruby:         ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux]
 GitLab:       13.12.5 (f37a805b0b4) FOSS
 GitLab Shell: 13.18.0
 PostgreSQL:   12.6
--------------------------------------------------------------------------------
Loading production environment (Rails 6.0.3.6)
irb(main):001:0> user = User.where(id: 1).first                                                                                                                                         => #<User id:1 @root>
irb(main):002:0> user.password = 'adminadmin'                                                                                                                                           => "adminadmin"
irb(main):003:0> user.password_confirmation = 'adminadmin'                                                                                                                              => "adminadmin"
irb(main):004:0> user.save                                                                                                                                                              Enqueued ActionMailer::MailDeliveryJob (Job ID: d5dce701-2a79-4bed-b0a4-2abb877c2081) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", {:args=>[#<GlobalID:0x00007f621582b210 @uri=#<URI::GID gid://gitlab/User/1>>]}
=> true
irb(main):005:0> exit     

然后登录,创建一个用户,给他一个第一个密码,用它登录更新密码,创建一个项目,并使用项目的 git url 而不是 http,因为使用端口似乎会对 http url 产生一些问题。可能需要生成公共私钥/密钥并在 gitlab 中注册公众


0
投票

将以下内容添加到

docker-compose.yml

version: "3.9"

services:
  gitlab:
    image: gitlab/gitlab-ee:latest
    container_name: gitlab
    restart: always
    hostname: 'gitlab.ksoft.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
          external_url 'http://gitlab.example.com:8929'
          gitlab_rails['gitlab_shell_ssh_port'] = 2424
    ports:
      - '8929:8929'
      - '443:443'
      - '22:22'
    volumes:
      - '/srv/gitlab/config:/etc/gitlab'
      - '/srv/gitlab/logs:/var/log/gitlab'
      - '/srv/gitlab/data:/var/opt/gitlab'
    shm_size: '256m'   
© www.soinside.com 2019 - 2024. All rights reserved.