docker 搭建 最新版本的 gitlab,使用HTTPS访问,以及gitlab的基础使用讲解

文章目录

  • 一、环境准备
    • 1.1 docker 安装
  • 二、gitlab 搭建
    • 2.1 环境准备
    • 2.2 启动gitlab容器
    • 2.3 验证 GitLab 启动
    • 2.4 备份和恢复
    • 2.5 升级 GitLab
  • 三、已搭建的gitlab升级为HTTPS访问
    • 3.1 准备 SSL 证书
    • 3.2 创建目录
    • 3.3 复制证书
    • 3.4 修改 GitLab 配置
    • 3.5 重新配置并重启 GitLab
    • 3.6 重启 GitLab 容器:
  • 四、生成 Cloudflare Origin CA 证书和私钥
    • 4.1 Cloudflare 如何获取SSL 证书和私钥
    • 4.2 下载并保存证书和私钥文件
  • 五、gitlab浏览器使用
    • 5.1 修改初始密码
      • 5.1.1 获取默认密码
      • 5.1.2 修改初始密码
    • 5.2 创建新用户
      • 5.2.1 使用 Web 界面
      • 5.2.2 使用命令行(API)
    • 5.3 创建新项目
      • 5.3.1 通过 Web 界面创建项目
      • 5.3.2 通过命令行使用 API 创建项目
    • 5.4 分配角色
      • 5.4.1 分配项目角色
      • 5.4.2 分配组角色
    • 5.5 允许用户上传和下载代码
      • 5.5.1 上传代码
      • 5.5.2 下载代码
  • 六、常见错误处理
    • 6.1 端口被占用
    • 6.2 浏览器访问时显示 Error code 522
      • 6.2.1 检查服务器防火墙配置(云厂商安全组)
      • 6.2.2 确认服务器端口开放
      • 6.2.3 确认 Docker 容器端口映射
      • 6.2.4 检查服务器上的 GitLab 配置
    • 6.3 浏览器访问时显示 Error code 521
      • 6.3.1 确认 Web 服务器正在运行
      • 6.3.2 检查 Web 服务器日志
      • 6.3.3 检查 Docker 容器端口映射
      • 6.3.4 检查服务器防火墙配置(云厂商安全组)
      • 6.3.5 确认 Cloudflare 的 SSL/TLS 配置
      • 6.3.6 为 GitLab 设置单独的 Page Rule
  • 七、常见的 gitlab-ctl 命令
    • 7.1 基本操作
    • 7.2 配置管理
    • 7.3 日志管理
    • 7.4 备份与恢复
    • 7.5 缓存管理

一、环境准备

1.1 docker 安装

  • 卸载旧版本的Docker(如果已安装)
sudo apt-get remove docker docker-engine docker.io containerd runc
  • 更新Ubuntu的软件包列表:
sudo apt update
  • 安装Docker所需的依赖包
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
  • 添加Docker的官方GPG密钥:

添加Docker的官方GPG密钥:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

添加Docker的APT存储库:

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • 再次更新软件包列表,并安装Docker引擎
sudo apt update  
sudo apt install docker-ce docker-ce-cli containerd.io -y
  • 启动Docker服务并设置为开机自启:
sudo systemctl start docker  
sudo systemctl enable docker  
  • 验证Docker安装是否成功
docker version

二、gitlab 搭建

2.1 环境准备

  • 镜像下载
docker pull gitlab/gitlab-ee:16.11.4-ee.0
  • 创建持久化数据目录

创建目录用于持久化存储配置(config)、日志(logs)、数据(data)和证书(SSL):

sudo mkdir -p /data/gitlab/config /data/gitlab/logs /data/gitlab/data /data/gitlab/ssl
  • 复制 SSL 证书

将SSL 证书文件(例如 gitlab.example.com.crt 和 gitlab.example.com.key)复制到 /data/gitlab/ssl 目录:

sudo cp /path/to/your/gitlab.example.com.crt /data/gitlab/ssl/
sudo cp /path/to/your/gitlab.example.com.key /data/gitlab/ssl/
  • 确保文件权限正确:
sudo chmod 600 /data/gitlab/ssl/gitlab.example.com.crt
sudo chmod 600 /data/gitlab/ssl/gitlab.example.com.key

2.2 启动gitlab容器

使用 Docker 启动 GitLab 容器,配置 HTTPS 和持久化存储:

  sudo docker run --detach \--hostname gitlab.example.com \--publish 80:80 --publish 443:443 --publish 2222:22 \--name gitlab \--restart always \--volume /data/gitlab/config:/etc/gitlab \--volume /data/gitlab/logs:/var/log/gitlab \--volume /data/gitlab/data:/var/opt/gitlab \--volume /data/gitlab/ssl:/etc/gitlab/ssl \--env GITLAB_OMNIBUS_CONFIG="external_url 'https://gitlab.example.com'; nginx['ssl_certificate'] = '/etc/gitlab/ssl/gitlab.example.com.crt'; nginx['ssl_certificate_key'] = '/etc/gitlab/ssl/gitlab.example.com.key';" \gitlab/gitlab-ee:16.11.4-ee.0

例如:

docker run --detach \--hostname gitlab.book.com \--publish 80:80 --publish 443:443 --publish 2222:22 \--name gitlab \--restart always \--volume /data/gitlab/config:/etc/gitlab \--volume /data/gitlab/logs:/var/log/gitlab \--volume /data/gitlab/data:/var/opt/gitlab \--volume /data/gitlab/ssl:/etc/gitlab/ssl \--env GITLAB_OMNIBUS_CONFIG="external_url 'https://gitlab.cashbook.cc'; nginx['ssl_certificate'] = '/etc/gitlab/ssl/gitlab.book.com.crt'; nginx['ssl_certificate_key'] = '/etc/gitlab/ssl/gitlab.book.com.key';" \gitlab/gitlab-ee:16.11.4-ee.0

参数解释及作用

1、docker run --detach:docker run: 启动一个新的 Docker 容器。
--detach: 以分离模式运行容器,即在后台运行。2、--hostname gitlab.example.com:设置容器的主机名,这将是 GitLab 实例在网络上的标识。3、--publish 80:80 --publish 443:443 --publish 2222:22:--publish (或 -p): 映射主机端口到容器端口。
80:80: 将主机的 80 端口映射到容器的 80 端口,用于 HTTP 访问。
443:443: 将主机的 443 端口映射到容器的 443 端口,用于 HTTPS 访问。
2222:22: 将主机的 2222 端口映射到容器的 22 端口,用于 SSH 访问。4、--name gitlab:指定容器的名称为 gitlab。
--restart always:设置容器的重启策略为总是重启,即使容器崩溃或 Docker 服务重启后,容器也会自动重启。5、--volume /srv/gitlab/config:/etc/gitlab:挂载主机的 /srv/gitlab/config 目录到容器的 /etc/gitlab 目录,用于存储 GitLab 配置文件。6、--volume /srv/gitlab/logs:/var/log/gitlab:挂载主机的 /srv/gitlab/logs 目录到容器的 /var/log/gitlab 目录,用于存储 GitLab 日志文件。7、--volume /srv/gitlab/data:/var/opt/gitlab:挂载主机的 /srv/gitlab/data 目录到容器的 /var/opt/gitlab 目录,用于存储 GitLab 数据。8、--volume /srv/gitlab/ssl:/etc/gitlab/ssl:挂载主机的 /srv/gitlab/ssl 目录到容器的 /etc/gitlab/ssl 目录,用于存储 SSL 证书文件。9、--env GITLAB_OMNIBUS_CONFIG=...:设置环境变量 GITLAB_OMNIBUS_CONFIG,用于配置 GitLab。10、external_url 'https://gitlab.example.com': 配置 GitLab 的外部访问 URL 为 https://gitlab.example.com。11、nginx['ssl_certificate'] = '/etc/gitlab/ssl/gitlab.example.com.crt': 配置 Nginx 使用的 SSL 证书路径。12、nginx['ssl_certificate_key'] = '/etc/gitlab/ssl/gitlab.example.com.key': 配置 Nginx 使用的 SSL 证书密钥路径。
gitlab_rails['gitlab_shell_ssh_port'] = 2222: 配置 GitLab 使用的 SSH 端口为 2222。13、gitlab/gitlab-ee:latest:指定使用的 Docker 镜像为 gitlab/gitlab-ee 的最新版本。

2.3 验证 GitLab 启动

  • 使用以下命令检查 GitLab 容器的状态:
# docker ps
CONTAINER ID   IMAGE                           COMMAND             CREATED        STATUS                  PORTS                                                                                                             NAMES
878788361f54   gitlab/gitlab-ee:16.11.4-ee.0   "/assets/wrapper"   2 minutes ago Up 2 minutes (healthy)   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:2222->22/tcp, :::2222->22/tcp   gitlab
  • 在浏览器中访问 https://gitlab.example.com(替换为实际域名)。初次访问时会要求设置管理员密码。

2.4 备份和恢复

  • 备份 GitLab 数据
sudo docker exec -t gitlab gitlab-backup create

备份文件存放在 /data/gitlab/data/backups 目录下。

  • 恢复 GitLab 数据

将备份文件复制到指定目录,并恢复:

sudo docker cp /path/to/backup.tar gitlab:/var/opt/gitlab/backups/
sudo docker exec -t gitlab gitlab-backup restore BACKUP=<timestamp_of_backup>

2.5 升级 GitLab

拉取最新稳定版本的镜像并重启容器:

sudo docker pull gitlab/gitlab-ee:latest
sudo docker stop gitlab
sudo docker rm gitlab
sudo docker run --detach \--hostname gitlab.example.com \--publish 80:80 --publish 443:443 --publish 22:22 \--name gitlab \--restart always \--volume /srv/gitlab/config:/etc/gitlab \--volume /srv/gitlab/logs:/var/log/gitlab \--volume /srv/gitlab/data:/var/opt/gitlab \--volume /srv/gitlab/ssl:/etc/gitlab/ssl \--env GITLAB_OMNIBUS_CONFIG="external_url 'https://gitlab.example.com'; nginx['ssl_certificate'] = '/etc/gitlab/ssl/gitlab.example.com.crt'; nginx['ssl_certificate_key'] = '/etc/gitlab/ssl/gitlab.example.com.key';" \gitlab/gitlab-ee:latest

三、已搭建的gitlab升级为HTTPS访问

3.1 准备 SSL 证书

准备 PEM 证书文件,分别需要crt和key文件

3.2 创建目录

sudo mkdir -p /data/gitlab/ssl

3.3 复制证书

将 PEM 证书文件复制到该目录,并命名为 gitlab.example.com.crt 和 gitlab.example.com.key。例如:

sudo cp /path/to/your/cloudflare_certificate.pem /data/gitlab/ssl/gitlab.example.com.crt
sudo cp /path/to/your/cloudflare_private_key.key /data/gitlab/ssl/gitlab.example.com.key

3.4 修改 GitLab 配置

编辑 GitLab 配置文件 gitlab.rb 以启用 HTTPS 并指定 SSL 证书和密钥路径。

1、打开 gitlab.rb 文件进行编辑:
vim /data/gitlab/config/gitlab.rb2、添加或修改以下配置:
external_url 'https://gitlab.example.com'
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.com.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.com.key"

3.5 重新配置并重启 GitLab

  • 重新配置 GitLab:
sudo docker exec -it gitlab gitlab-ctl reconfigure

3.6 重启 GitLab 容器:

sudo docker restart gitlab

注:通过上述步骤,我们可以将 GitLab 从 HTTP 升级到 HTTPS 访问。如果在配置过程中遇到问题,可以查看 GitLab 和 Nginx 的日志以获取更多调试信息。

四、生成 Cloudflare Origin CA 证书和私钥

如果在 Cloudflare 中生成的证书只有 PEM 格式的文件而没有私钥文件,可能您使用的是 Cloudflare 提供的“Origin CA”证书。这个证书是用来在 Cloudflare 和您的服务器之间建立安全连接的。在这种情况下,您需要使用 Cloudflare 的 Origin CA 来生成证书和私钥文件。

4.1 Cloudflare 如何获取SSL 证书和私钥

  1. 登录 Cloudflare 控制台。
  2. 选择您的域名。
  3. 导航到 SSL/TLS -> Origin Server。
  4. 点击 Create Certificate。
  5. 选择 Let Cloudflare generate a private key and a CSR。
  6. 点击 Next。
  7. 选择 PEM 格式并点击 Create.

生成后,您会得到两个文件:

  • Origin Certificate(证书文件,通常为 .pem 格式)。
  • Private Key(私钥文件,通常为 .key 格式)。

4.2 下载并保存证书和私钥文件

下载生成的证书和私钥文件,并将它们保存到您的服务器上。例如:

  • origin-cert.pem(证书文件)
  • origin-key.pem(私钥文件)

五、gitlab浏览器使用

5.1 修改初始密码

  • 默认用户名和密码
    默认用户名: root
    默认密码: 在 GitLab 的 Docker 容器首次启动时,默认密码会在日志中生成,或者使用在 gitlab.rb 文件中设置的密码。

5.1.1 获取默认密码

默认密码会存储在容器内的文件中,可以通过以下命令获取:

sudo docker exec -it gitlab cat /etc/gitlab/initial_root_password输出内容会包含类似如下的信息:# WARNING: This value is valid only in the following conditions
# 1. You access the account via the web interface.
# 2. You have not already changed the password.
#
Password: <your_initial_password>

5.1.2 修改初始密码

  1. 通过Web页面设置
  • 登录后,点击右上角的头像,然后选择 Edit Profile
  • 在左侧菜单中选择 Password
  • 输入当前密码和新密码,然后点击 Save password
  1. 通过文件设置

如果我们在 gitlab.rb 文件中设置了自定义的初始密码,可以通过以下配置进行设置:

gitlab_rails['initial_root_password'] = '密码'

然后重新配置 GitLab:

sudo docker exec -it gitlab gitlab-ctl reconfigure

5.2 创建新用户

5.2.1 使用 Web 界面

  • 登录到 GitLab 管理界面(以管理员身份)。
  • 在左侧导航栏中,点击 Admin Area。
  • 在顶部导航栏中,选择 Users。
  • 点击 New user 按钮。
  • 填写用户的详细信息(如姓名、用户名、邮箱地址等)。
Name: 用户的全名,如 “John Doe”。
Username: 用户的唯一标识符,如 “johndoe”。
Email: 用户的电子邮件地址。
Password: 用户的密码(如果需要,可以暂时留空,用户可以通过邮件设置密码)。
  • 设置用户密码(如果需要)。
  • 点击 Create user 按钮。

注:
Name 是用户的全名,用于显示在界面上的人类可读的名字。
Username 是用户的唯一标识符,用于登录、URL 和命令行操作。

5.2.2 使用命令行(API)

我们还可以使用 GitLab API 创建用户。以下是一个示例命令:

curl --request POST "https://gitlab.example.com/api/v4/users" \
--header "PRIVATE-TOKEN: <your_access_token>" \
--data "email=new_user@example.com&username=new_user&name=New User&password=password1234"

将 <your_access_token> 替换为管理员访问令牌。

5.3 创建新项目

5.3.1 通过 Web 界面创建项目

  1. 进入新项目创建页面:
  • 登录后,在页面的右上角,点击 + 按钮。
  • 从下拉菜单中选择 New project。
  1. 选择项目类型:
  • Create blank project:从头开始创建一个空项目。
  • Create from template:使用 GitLab 提供的模板创建项目。
  • Import project:从外部源(如 GitHub、Bitbucket)导入项目。
  1. 填写项目详细信息:
  • Project name:输入项目名称。这将自动生成项目的 URL 路径(可以手动修改)。
  • Project slug:这是项目的 URL 路径(如果未手动修改,将基于项目名称自动生成)。
  • Project description(可选):输入项目的描述信息。
  • Project visibility:选择项目的可见性级别:
    • Private:只有项目成员可以访问。
    • Internal:所有登录的用户可以访问。
  1. 设置其他选项(可选):
  • Initialize repository with a README:初始化项目时添加一个 README 文件。
  • Add .gitignore:选择一个适合项目的 .gitignore 模板。
  • Add a license:选择一个适合项目的许可证。
  1. 创建项目:

填写完所有信息后,点击 Create project 按钮。

5.3.2 通过命令行使用 API 创建项目

我们也可以使用 GitLab API 创建项目。以下是一个示例命令:

curl --request POST "https://gitlab.example.com/api/v4/projects" \
--header "PRIVATE-TOKEN: <your_access_token>" \
--data "name=new_project&visibility=private"

将 <your_access_token> 替换为您的访问令牌,并根据实际情况修改 name 和 visibility 参数。

5.4 分配角色

在 GitLab 中,用户角色通常通过项目或组权限分配。常见的角色包括:Guest、Reporter、Developer、Maintainer 和 Owner。

5.4.1 分配项目角色

  • 登录到 GitLab 管理界面。
  • 选择一个项目。
  • 在左侧导航栏中,点击 Members。
  • 点击 Invite members 按钮。
  • 输入新用户的用户名或邮箱地址。
  • 选择用户的角色(如 Developer)。
  • 点击 Invite 按钮。

5.4.2 分配组角色

  • 登录到 GitLab 管理界面。
  • 选择一个组。
  • 在左侧导航栏中,点击 Members。
  • 点击 Invite members 按钮。
  • 输入新用户的用户名或邮箱地址。
  • 选择用户的角色(如 Developer)。
  • 点击 Invite 按钮。

5.5 允许用户上传和下载代码

只要用户被分配了适当的角色(如 Developer 或以上),他们就可以在项目中进行代码上传和下载。

5.5.1 上传代码

用户可以使用 Git 命令行工具将代码推送到项目中:

git clone https://gitlab.example.com/group/project.git
cd project
# 做出一些更改
git add .
git commit -m "Add new feature"
git push origin main

5.5.2 下载代码

用户可以通过 Git 克隆项目:

git clone https://gitlab.example.com/group/project.git

六、常见错误处理

6.1 端口被占用

错误信息:

docker: Error response from daemon: driver failed programming external connectivity on endpoint gitlab

解决方法

确保端口未被其他服务占用。例如,22 端口可能已经被 SSH 服务占用。

6.2 浏览器访问时显示 Error code 522

访问报错:Connection timed out Error code 522

错误代码 522 通常表示 Cloudflare 无法连接到您的服务器。以下是可能的解决方案:

6.2.1 检查服务器防火墙配置(云厂商安全组)

确保防火墙允许 HTTP(80)、HTTPS(443)和新的 SSH(2222)端口的访问。

6.2.2 确认服务器端口开放

确保服务器在正确的端口上监听。您可以使用 netstat 或 ss 工具进行检查:

sudo netstat -tuln | grep ':80'
sudo netstat -tuln | grep ':443'
sudo netstat -tuln | grep ':2222'

确保这些命令返回监听状态。

6.2.3 确认 Docker 容器端口映射

检查 Docker 容器的端口映射是否正确:

docker ps

6.2.4 检查服务器上的 GitLab 配置

确保 GitLab 容器内的 NGINX 正常运行并监听正确的端口。进入容器内部检查 NGINX 状态:

sudo docker exec -it gitlab gitlab-ctl status

检查 NGINX 日志:

sudo docker exec -it gitlab gitlab-ctl tail nginx

确保 NGINX 正常启动且没有错误。

6.3 浏览器访问时显示 Error code 521

报错信息:Cloudflare 报错Web server is down Error code 521

错误代码 521 表示 Cloudflare 无法连接到您的服务器。这通常是因为服务器没有响应,或者阻止了来自 Cloudflare 的请求。以下是一些可能的解决方案:

6.3.1 确认 Web 服务器正在运行

确保 GitLab 容器内的 NGINX 服务正在运行。

进入 GitLab 容器内部:

sudo docker exec -it gitlab bash

然后检查 NGINX 服务状态:

gitlab-ctl status nginx

如果 NGINX 没有运行,可以尝试重新启动:

gitlab-ctl restart nginx

6.3.2 检查 Web 服务器日志

查看 NGINX 的日志文件,查找任何错误信息:

gitlab-ctl tail nginx

6.3.3 检查 Docker 容器端口映射

确保 Docker 容器正确映射了 HTTP 和 HTTPS 端口。

运行以下命令来检查容器的端口映射:

docker ps

6.3.4 检查服务器防火墙配置(云厂商安全组)

确保防火墙允许 HTTP(80)、HTTPS(443)和新的 SSH(2222)端口的访问。

6.3.5 确认 Cloudflare 的 SSL/TLS 配置

确保 Cloudflare SSL/TLS 配置正确。推荐使用“Full”或“Full (strict)”模式:

  1. 登录 Cloudflare 控制台。
  2. 选择您的域名。
  3. 导航到 SSL/TLS 选项卡。
  4. 确保 SSL/TLS 模式设置为 Full 或 Full (strict)。

注意:如果更改 Cloudflare 的 SSL/TLS 模式可能会影响该域名其他网站的访问,我们可以尝试以下几个步骤来解决 GitLab 的连接问题,而不影响其他网站的正常访问:

6.3.6 为 GitLab 设置单独的 Page Rule

确认 Cloudflare 的 SSL/TLS 配置,推荐使用“Full”或“Full (strict)”模式。为了不影响其他网站,可以为 GitLab 设置单独的 Page Rule。

  1. 登录 Cloudflare 控制台。
  2. 选择您的域名。
  3. 导航到 Page Rules 选项卡。
  4. 创建一个新的 Page Rule,规则如下:
URL: *gitlab.example.com/*
Settings: SSL -> Full (strict)

七、常见的 gitlab-ctl 命令

gitlab-ctl 是 GitLab Omnibus 版本中的一个命令行工具,用于管理和配置 GitLab 服务。即使使用 Docker 部署 GitLab,您仍然可以通过在 Docker 容器中执行 gitlab-ctl 命令来管理 GitLab 实例。

7.1 基本操作

  • 启动 GitLab:
gitlab-ctl start
  • 停止 GitLab 服务:
gitlab-ctl stop
  • 重启 GitLab 服务:
gitlab-ctl restart
  • 检查所有 GitLab 组件的运行状态:
gitlab-ctl status

7.2 配置管理

  • 重新配置 GitLab:

当我们修改了配置文件 /etc/gitlab/gitlab.rb 后,需要重新加载配置:

gitlab-ctl reconfigure
  • 测试配置:
gitlab-ctl reconfigure --dry-run

7.3 日志管理

  • 查看所有服务日志:
gitlab-ctl tail
  • 查看指定特定服务的日志,例如查看 Nginx 的日志
gitlab-ctl tail nginx

7.4 备份与恢复

  • 创建备份:

在进行升级前,您可以创建备份:

gitlab-rake gitlab:backup:create
  • 从备份恢复:
gitlab-rake gitlab:backup:restore

7.5 缓存管理

  • 清除 Redis 缓存:
gitlab-rake cache:clear

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/28846.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【大语言模型】本地快速部署Ollama运行大语言模型详细流程

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【C++提高编程-09】----C++ STL之常用排序算法

&#x1f3a9; 欢迎来到技术探索的奇幻世界&#x1f468;‍&#x1f4bb; &#x1f4dc; 个人主页&#xff1a;一伦明悦-CSDN博客 ✍&#x1f3fb; 作者简介&#xff1a; C软件开发、Python机器学习爱好者 &#x1f5e3;️ 互动与支持&#xff1a;&#x1f4ac;评论 &…

苹果在WWDC 2024的AI创新

1. 引言 苹果的年度全球开发者大会&#xff08;WWDC&#xff09;历来是展示其最新技术和创新的平台。2024年的WWDC尤其引人注目&#xff0c;因为苹果将重点关注人工智能&#xff08;AI&#xff09;&#xff0c;推出一系列令人期待的更新和功能。本文将详细探讨这些AI创新&…

电商平台数据的认知与深度理解

随着信息技术的迅猛发展&#xff0c;电商平台已成为现代社会商业活动的重要舞台。在这个舞台上&#xff0c;数据不仅是交易的记录&#xff0c;更是企业决策的依据、用户行为的镜子和市场变化的晴雨表。本文将从多个维度对电商平台数据进行全面且深入的认知和理解。 一、数据的…

从WWDC 2023看苹果的未来:操作系统升级与AI技术的融合

引言 在2024年的WWDC&#xff08;苹果全球开发者大会&#xff09;上&#xff0c;苹果公司展示了一系列创新技术和产品&#xff0c;其中最引人注目的莫过于操作系统的升级与AI技术的深度融合。作为一个备受期待的发布会&#xff0c;WWDC不仅向我们展示了苹果在技术上的前瞻性布…

建议收藏:防止外发文件二次泄密的七个办法

防止外发文件二次泄密是一项重要的信息安全管理任务&#xff0c;特别是在涉及敏感信息、商业秘密或知识产权的文档时。以下是一些有效的策略和措施&#xff0c;用以降低文件外发后的泄密风险。 1. 使用加密软件&#xff08;安企神软件&#xff09; 透明加密&#xff1a;对外发…

Linux下git用http连接时免输密码方法

1、创建 .git-credentials文件 在~/下&#xff0c; 创建并编辑文件 .git-credentials touch .git-credentials vim .git-credentials http://用户名:密码gitlab.anlitech.com 2、初始化配置.gitconfig git config --global credential.helper store

生成式AI在电影产业的崛起

1. 引言 生成式AI技术正迅速改变电影产业的面貌&#xff0c;从创建高质量的视频片段到实现复杂的特效&#xff0c;甚至是演员的去老化技术&#xff0c;都显示出其强大的潜力。公司如Runway引领了这一潮流&#xff0c;其Gen-2工具已被广泛使用&#xff0c;主要电影制片厂也开始…

GPT-4系列模型,在文档理解中的多维度评测

著名云数据平台Snowflake的研究人员发布了一篇论文&#xff0c;主要对OpenAI的GPT-4系列模型进行了研究&#xff0c;查看其文本生成、图像理解、文档摘要等能力。 在DocVQA、InfographicsVQA、SlideVQA和DUDE数据集上对GPT-4、GPT-4 V、GPT-4 Turbo V OCR等进行了多维度测试。…

场外期权在哪个平台可以买卖?

今天带你了解场外期权在哪个平台可以买卖&#xff1f;近年来&#xff0c;随着投资者对个股期权交易的兴趣不断增加&#xff0c;市场上涌现出了许多热门的场外个股期权交易平台&#xff0c;那么在哪个平台可以买卖场外期权&#xff1f; 场外期权在哪个平台可以买卖&#xff1f; …

Go 基础丨字符串 string

1. 底层 runtime/string.go type stringStruct struct {str unsafe.Pointer // 指向底层 Byte 数组len int // String 所占字节数 }reflect/value.go type StringHeader struct {Data uintptrLen int }2. 测试 s_en : "hedonwang"s_cn : "王小佳"…

5G消息 x 融媒 | 媒体融合新入口

5G消息 x 融媒 | 媒体融合新入口 5G 消息是 5G 时代三大运营商联合手机厂商推出的平台型应用&#xff0c;5G 消息以短信为入口&#xff0c;以富媒体消息为媒介&#xff0c;具有权威真实、全面覆盖、精准投放、内容汇聚、开放共享等特点。这些特点符合当下融媒体发展的需求&…

Windows电脑部署Jellyfin服务端并进行远程访问配置详细教程

文章目录 前言1. Jellyfin服务网站搭建1.1 Jellyfin下载和安装1.2 Jellyfin网页测试 2.本地网页发布2.1 cpolar的安装和注册2.2 Cpolar云端设置2.3 Cpolar本地设置 3.公网访问测试4. 结语 前言 本文主要分享如何使用Windows电脑本地部署Jellyfin影音服务并结合cpolar内网穿透工…

6.1 Python 文件类型及常用内置方法

文章目录 1. 文件读写1.1 文件1.2 open函数1. file参数2. mode参数3. encoding参数 1.3 操作文件注意事项1. 操作文件原理2. 操作文件步骤3. 回收系统资源 1.4 上下文管理 2. 模式测试2.1 只写模式1. 文件不存在2. 文件存在 2.2 读模式1. 路径存在2. 路径不存在 2.3 追加模式2.…

​1:25万基础电子地图(江西版)

我们在《50幅1:25万基础电子地图&#xff08;四川版&#xff09;》和《1&#xff1a;25基础电子地图&#xff08;云南版&#xff09;》等文中&#xff0c;为你分享过四川和云南的基础电子地图。 现在我们再为你分享江西的1&#xff1a;25万基础电子地图&#xff0c;你可以在文…

第9章 类

第9章 类 9.1 创建和使用类9.1.1 创建 Dog 类9.1.2 根据类创建实例 9.2 使用类和实例9.2.1 Car 类9.2.2 给属性指定默认值9.2.3 修改属性的值 9.3 继承9.3.1 子类的方法__init__()9.3.2 给子类定义属性和方法9.3.3 重写父类的方法9.3.4 将实例用作属性9.3.5 模拟实物 9.4 导入类…

【AI绘画】文心一格

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…

数据结构-绪论

目录 前言一、从问题到程序二、数据结构的研究内容三、理解数据结构3.1 数据3.2 结构3.2.1 逻辑结构的分类3.2.2 存储结构的分类 3.3 数据结构 总结 前言 本篇文章先介绍数据结构的研究内容&#xff0c;然后再介绍如何去理解数据结构&#xff0c;着重介绍表示数据结构关系的逻…

springboot与flowable(5):任务分配(表达式)

在做流程定义时我们需要给相关的用户节点指派对应的处理人。在flowable中提供了三种分配的方式。 一、固定分配 在分配用户时选择固定值选项确认即可。 二、表达式 1、值表达式 2、方法表达式 三、表达式流程图测试 1、导出并部署 导出流程图&#xff0c;复制到项目中 部署流…

机器学习——集成学习和梯度提升决策树

集成学习 不同的算法都可以对解决同一个问题&#xff0c;但是可能准确率不同&#xff0c;集成学习就是不同算法按照某种组合来解决问题&#xff0c;使得准确率提升。 那怎么组合算法呢&#xff1f; 自举聚合算法**&#xff08;bagging&#xff09;** 顾名思义是 自举聚合 自举…