docker搭建SVN

docker搭建SVN(非常詳細,網上的教程很多坑都填了)

2018年11月16日 17:26:35 walk_thinker 閱讀數:2261

容器 github目錄 https://github.com/elleFlorio/svn-docker

1.docker search svn

在這裏插入圖片描述

  1. docker pull docker.io/elleflorio/svn-server 這個帶有http協議

3.構建svn容器

docker run -v /usr/local/svn:/home/svn -v /usr/local/svn/passwd:/etc/subversion/passwd -v /usr/local/apache2:/run/apache2 --name hltz_svn -p 3380:80 -p 3690:3960 -e SVN_REPONAME=repos -d docker.io/elleflorio/svn-server

映射/usr/local/apache2:/run/apache2 的目的是http啓動要在該目錄下創建一個文件,沒有映射目錄容器重啓之後目錄就不見了,沒有映射目錄會報下面那個錯誤(在容器中 find / -name ‘error.log’,可以查找到錯誤日誌)

不映射會報錯

SVN_REPONAME用於指定新創建的代碼庫的名稱。

  1. 創建 http 訪問賬號

    docker exec -t hltz_svn htpasswd -b /etc/subversion/passwd dqw Dqw
    
    • 1

在這裏插入圖片描述

此賬號和密碼被寫入容器中的 HTTP 認證文件(/etc/subversion/passwd),且密碼是加密的。實踐經驗表明,既然用 http 協議訪問只能查看,那麼創建一個公共的賬號,供大家使用即可。也可創建與 svn 認證文件中一樣的賬號和密碼。
  • 1
docker exec -it hltz_svn /bin/sh    進入容器中
  • 1
  1. 創建資源庫/home/svn # svnadmin create /home/svn/repos
    在這裏插入圖片描述

6.資源庫配置

/var/svn/repository/conf # vi svnserve.conf,把下面4個的#號去掉,左邊不能有空格

anon-access = none    #使非授權用戶無法訪問

auth-access = write    #使授權用戶有寫權限

password-db = passwd  #指明密碼文件路徑

authz-db = authz     #訪問控制文件

密碼文件讀取passwd文件,授權信息讀取authz文件。

在這裏插入圖片描述

7.編輯密碼文件

/var/opt/svn/repository/conf # vi passwd

在這裏插入圖片描述

設置 dqw用戶密碼是dqw

  1. vi authz

在這裏插入圖片描述

表示dqw賬戶是管理員, *=r表示所有用戶有讀權限, @admin =rw 這個用戶組有讀寫權限;

9.配置完成!由於構建容器的時候已經把宿主機svn目錄映射到svn容器中,所有/usr/local/svn/repository 目錄中可以直接配置svn,修改配置之後重啓容器即可!

10.搭建完成之後記得在阿里雲上配置3380端口的白名單

11.docker logs -t -f --since=“2018-01-01” --tail=50 hltz_svn

查看日誌:發現報錯

在這裏插入圖片描述

)進入容器中apache的安裝目錄:(視個人安裝情況而不同) [root@server ~]# cd /etc/apache2

2)編輯httpd.conf文件,搜索"#ServerName",添加ServerName localhost:80
[root@server conf]# ls
extra httpd.conf magic mime.types original
[root@server conf]# vi httpd.conf
#ServerName www.example.com:80
ServerName localhost:80
3)再重新啓動容器即可。

導入的時候報一下錯誤:

Error:svn: E000013: Can’t open file ‘/home/svn/repos/db/txn-current-lock’: Permission denied(沒有權限)

在這裏插入圖片描述


在容器中添加權限給目錄

chmod -R o+rw /home/svn

添加這個權限就可以了,因爲啓動svn是root用戶,但是你用idea的時候不是root用戶

http://ip地址:3380/svn/repos/

在網頁上可以直接訪問,輸入賬號密碼就可以了

在idea跟eclipse中也一樣

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章