doc/笔记/SVN for Docker-svnfordocker.md

84 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: SVN for Docker
date: 2023-03-28 07:15:24.648
updated: 2023-05-06 10:53:56.264
url: /archives/svnfordocker
categories:
- Docker
tags:
- Docker
---
# Docker搭建svn服务器
## svn的docker搭建方法
docker镜像为garethflowers/svn-server
启动命令
```csharp
docker run --restart always --name svn -d -v /root/svn:/var/opt/svn -p 3690:3690 garethflowers/svn-server
```
> /root/dockers/svn为宿主机的文件目录/var/opt/svn为容器内的文件目录
>
> --restart always命令可以实现容器在宿主机开机时自启动
>
> -p 3690:3690表示将宿主机的3690端口映射到容器的3690端口此端口为svn服务的默认端口可以根据需要自行修改
## 创建svn仓库和账户
### 进入容器中进行配置
```bash
docker exec -it svn /bin/sh
```
### 创建名称为svn的资源仓库
```undefined
svnadmin create svn
```
创建成功后svn目录内应该包含以下文件:
```
README.txt conf db format hooks locks
```
### 资源仓库配置修改svnserve.conf
```ruby
anon-access = none # 匿名用户不可读写,也可设置为只读 read
auth-access = write # 授权用户可写
password-db = passwd # 密码文件路径,相对于当前目录
authz-db = authz # 访问控制文件
realm = /var/opt/svn/svn # 认证命名空间会在认证提示界面显示并作为凭证缓存的关键字可以写仓库名称比如svn
```
### 配置账号与密码,修改 passwd文件格式为“账号 = 密码”
```csharp
[users]
# harry = harryssecret
# sally = sallyssecret
admin = 123456
```
### 配置账户权限,修改 authz文件
```csharp
[groups]
owner = admin
[/] # / 表示所有仓库
admin = rw # 用户 admin 在所有仓库拥有读写权限
[svn:/] # 表示以下用户在仓库 svn 的所有目录有相应权限
@owner = rw # 表示 owner 组下的用户拥有读写权限
```
## 拉取svn
```cpp
svn://127.0.0.1/svn
```