docker安裝svn


借鑒博客:https://www.cnblogs.com/daryl-blog/p/11369577.html

 

1、使用docker命令下載svn鏡像

//搜索svn鏡像
docker search svn


//下載第一個鏡像:docker.io/garethflowers/svn-server
docker pull docker.io/garethflowers/svn-server

 

操作圖如下:

 

 

 

2、運行svn容器,並配置宿主機映射

  2.1、先在/usr/local目錄下建一個dev/svn/repo目錄,把docker中的svn容器倉庫目錄映射在宿主機上/usr/local/dev/svn/repo

    目錄我已經創建好了,如下:

 

 

  2.2、使用docker命令映射目錄,並啟動svn容器

//docker運行svn命令
docker run --restart always --name svn -d -v /usr/local/dev/svn/repo:/var/opt/svn -p 3690:3690 garethflowers/svn-server



簡析
  • /root/dockers/svn為宿主機的文件目錄,/var/opt/svn為容器內的文件目錄
  • --restart always命令可以實現容器在宿主機開機時自啟動
  • -p 3690:3690表示將宿主機的3690端口映射到容器的3690端口,此端口為svn服務的默認端口,可以根據需要自行修改
 
        

 

成功如下:

 

 

 

 

 

3、進入svn容器,創建賬戶和配置

//進入svn容器
docker exec -it svn /bin/sh

 

 

  3.2創建名稱為svn的資源倉庫

svnadmin create svn

//上行代碼創建了一個svn倉庫目錄,進去會有幾個文件:README.txt conf db format hooks locks
成功如下圖

 

 

 

修改svn目錄中的文件配置,命令:vi svnserve.conf

文件配置內容如下:

anon-access = none             # 匿名用戶不可讀寫,也可設置為只讀 read
auth-access = write            # 授權用戶可寫
password-db = passwd           # 密碼文件路徑,相對於當前目錄
authz-db = authz               # 訪問控制文件
realm = /var/opt/svn/svn       # 認證命名空間,會在認證提示界面顯示,並作為憑證緩存的關鍵字,可以寫倉庫名稱比如svn

(我這里注釋中文顯示不出來,應該是docker配置編碼問題,我懶得配置了,就沒寫上中文注釋)

 

操作圖如下:

 

 

修改passwd、和authz文件,沒有這兩文件直接創建並修改:vi passwd  和    vi  authz

passwd文件內容如下:
[users] # harry
= harryssecret # sally = sallyssecret admin = 123456 authz文件內容如下:
[groups] owner
= admin [/] # / 表示所有倉庫 admin = rw # 用戶 admin 在所有倉庫擁有讀寫權限 [svn:/] # 表示以下用戶在倉庫 svn 的所有目錄有相應權限 @owner = rw # 表示 owner 組下的用戶擁有讀寫權限

 

操作圖內容如下:

 

 

 

 

4、將容器內生成的資源庫repository拷貝到宿主機的對應目錄下,因為容器一旦重啟,這些信息就會丟失,所以應該持久化到宿主機的文件系統中。

#借鑒命令:docker cp 容器ID:/var/opt/svn/repository/ /opt/data/svn/repo

//本人真實路徑命令拷貝

docker cp 4245e47be88e:/var/opt/svn/svn/ /usr/local/dev/svn/repo




//重啟svn容器 或命令:
docker restart 容器ID

docker restart svn

 

4、退出容器:exit,然后將容器內生成的資源庫repository拷貝到宿主機的對應目錄下,因為容器一旦重啟,這些信息就會丟失,所以應該持久化到宿主機的文件系統中

docker cp 容器ID:/var/opt/svn/repository/ /opt/data/svn/repo


//再重啟svn容器
docker restart svn 或 docker restart 容器ID

 

 

5、使用命令,看成功否:

svn co svn://127.0.0.1:3690/svn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM