本機環境CentOS7,用戶爲roothtml
下載腳本到工做目錄 curl -fsSL https://get.docker.com -o get-docker.sh 執行腳本 sudo sh get-docker.sh
執行完會自動退出shell,須要從新登陸。git
安裝docker-compose的可執行命令到/usr/local/bin sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 增長可執行權限 sudo chmod +x /usr/local/bin/docker-compose
不出意外,本地網絡是下載不動的...
github
能夠嘗試 Github手動下載,或者開加速器。下載完成後copy到/usr/local/bin,而後增長可執行權限docker
service docker start 或 systemctl start docker
docker search nexus
通常安裝star
數最多的版本,目前最新是sonatype/nexus3
shell
docker pull sonatype/nexus3
docker run -p 8081:8081 --name nexus sonatype/nexus3
若是有容器和下面要建立的容器同名的話,先刪除 docker rm <container_name> 指定虛擬機與容器共享的文件夾 mkdir /usr/local/docker/nexus/nexus-data 啓動容器 docker run -p 8081:8081 --name nexus -v /usr/local/docker/nexus/nexus-data:/nexus-data snoatype/nexus3
chmod 777 /usr/local/docker/nexus/nexus-data
mkdir /usr/local/docker cd /usr/local/docker vi docker-compose.yml
version: "3.7" services: nexus: restart: "no" image: sonatype/nexus3 container_name: nexus ports: - 8081:8081 volumes: - /usr/local/docker/nexus/nexus-data:/nexus-data
version : 指定docker-compose語法版本,版本不一樣,支持的docker也不一樣瀏覽器
restart網絡
services : 多種服務的根節點less
nexus : 服務名隨意起,表明要建立的服務curl
restart : 容器的重啓策略,有no、always、on-failure、
unless-stopped四種可選值。maven
image : 容器依據的鏡像
container_name : 容器名
ports : 端口
volumes : 數據卷
注意:yml文件縮進必須用空格
http://<host address>:8081/
/usr/local/docker/nexus/nexus-data
中admin
開頭的文件中,將其拷貝輸入便可。<servers> <server> <id>maven-releases</id> <username>admin</username> <password>112233</password> </server> <server> <id>maven-snapshots</id> <username>admin</username> <password>112233</password> </server> </servers>
id
: 爲nexus的倉庫名稱,
username
: nexus用戶名
password
: nexus密碼
增長髮布管理節點
<distributionManagement> <snapshotRepository> <id>maven-snapshots</id> <name>maven-snapshots-repository</name> <url>http://192.168.172.141:8081/repository/maven-snapshots/</url> </snapshotRepository> <repository> <id>maven-releases</id> <name>maven-releases-repository</name> <url>http://192.168.172.141:8081/repository/maven-releases/</url> </repository> </distributionManagement>
snapshotRepository
: 快照倉庫
repository
: 發行倉庫
id
: 與上面的server的id一致
name
: 隨便
url
: 倉庫地址,從nexus中能夠找到
maven會根據<version/>
中是否含有SANPSHOT
來選擇是發佈到快照倉庫,仍是發行版倉庫
項目打包 mvn clean package -Dmaven.test.skip=true 項目發佈 mvn deploy
運行完即可在nexus中看到本身的項目了。
有時項目開發時,一些maven依賴下載不下來,一直報錯。這時,能夠手動下載jar包,將其安裝到nexus私服,再從nexus解決依賴問題。下面以安裝kaptcha
爲例:
mvn deploy:deploy-file -DgroupId=com.google.code.kaptcha -DartifactId=kaptcha -Dversion=2.3 -Dpackaging=jar -Dfile=D:\kaptcha-2.3.2.jar -Durl=http://192.168.172.141:8081/repository/third/ -DrepositoryId=third
DgroupId
: jar包的groupId
Dversion
: jar包的版本
Dfile
: jar包所在位置
Durl
: 倉庫地址
DrepositoryId
: 倉庫名
這裏新建了名爲third
的第三方倉庫,注意要在setting.xml
增長一個server
節點,配置用戶名和密碼。同時要將third
倉庫加到maven-public
組中,由於第十步要依賴的是maven-public
組。將 third
加入maven-pulic
組後,只要依賴maven-public
,即可取到third
中的jar包。
在pom.xml
中增長以下倉庫配置:
<repositories> <repository> <id>nexus</id> <name>Nexus Repository</name> <url>http://192.168.172.141:8081/repository/maven-public/</url> <snapshots> <enabled>true</enabled> </snapshots> <releases> <enabled>true</enabled> </releases> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>nexus</id> <name>Nexus Plugin Repository</name> <url>http://192.168.172.141:8081/repository/maven-public/</url> <snapshots> <enabled>true</enabled> </snapshots> <releases> <enabled>true</enabled> </releases> </pluginRepository> </pluginRepositories>
url
節點填寫的都是maven-public
組的url,而maven-releases
,maven-snapshots
,third
都包含在maven-public
中,因此能取到三個倉庫的內容。