分类目录Ubuntu

harbor 镜像仓库

代码仓库
项目网站
离线包下载

安装

  1. 安装 docker
  2. 安装 docker-compose
  3. 下载 harbor
    wget https://github.com/goharbor/harbor/releases/download/v1.10.0/harbor-offline-installer-v1.10.0.tgz
  4. 解压
  5. 创建数据目录
    /data/harbor
  6. 创建CA证书
    /data/harbor/cert

    • 创建CA的证书
      openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt
    • 生成CA证书签名请求
      openssl req -newkey rsa:4096 -nodes -sha256 -keyout harbor.xxx.com.key -out harbor.xxx.com.csr
    • 生成注册主机的证书
    1. 使用域名生成注册主机证书
      openssl x509 -req -days 365 -in harbor.xxx.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out harbor.xxx.com.crt
    2. 使用IP生成注册主机证书
      echo subjectAltName = IP:192.168.88.88 > extfile.cnf
      openssl x509 -req -days 365 -in harbor.xxx.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out harbor.xxx.com.crt
  7. 配制 配置文件 harbor.cfg or harbor.yml

#配置访问的地址
hostname = 198.168.88.88
#使用http方式访问管理界面
ui_url_protocol = http
#配置admin的密码,默认是Harbor12345
harbor_admin_password = 12345
#更改harbor存储路径,默认是/data
secretkey_path = /data/harbor
certificate: /data/harbor/cert/harbor.xxx.com.crt
private_key: /data/harbor/cert/harbor.xxx.com.key
  1. 配置文件docker-compose.yml
  /compose_location/docker-compose.yml
  1. 检测并创建harbor需要文件
    ./prepare
  2. 安装Harbor
    ./install.sh

  3. 保存数据重新安装 (先进入harbor目录)
    docker-compose up -d
    docker-compose down -v
    ./install.sh可以重新安装

默认安装管理Harbor的生命周期

ocker-compose ps 查看
开始、停止、重启
您可以使用docker-compose来管理Harbor的生命周期。一些有用的命令列出如下(必须与docker-compose.yml在同一目录中运行)。
sudo docker-compose start/stop/restart
更新配置
要更改Harbour的配置,请先停止现有的Harbor实例并进行更新harbor.cfg。然后运行prepare脚本以填充配置。最后重新创建并启动Harbor的实例:
sudo docker-compose down -v
sudo vim harbor.cfg
sudo prepare
sudo docker-compose up -d
删除Harbor的容器,同时将镜像数据和Harbor的数据库文件保存在文件系统上
sudo docker-compose down -v
删除Harbor的数据库和镜像数据(用于干净的重新安装)
rm -r /data/database
rm -r /data/registry

  1. 管理界面
    注:默认的用户名admin,密码Harbor12345。

  2. 错误

    • Error response from daemon: Get https://harbor.xxx.com/v1/users/: x509: certificate signed by unknown authority
      centos7系统以上报错的原因是因为自签的证书没有加入到系统级别信任,只需要将harbor.xxx.com.crt拷贝到/etc/pki/ca-trust/source/anchors/reg.你的域名.crt,然后需要执行命令update-ca-trust,最后重启harbor和docker即可!
      ubunt16.04系统以上报错的原因是因为自签的证书没有加入到系统级别信任,只需要将harbor.xxx.com.crt拷贝到/usr/local/share/ca-certificates/reg.你的域名.crt,然后执行命令update-ca-certificates,最后重启harbor和docker即可!
      /usr/share/ca-certificates/reg.你的域名.crt
      图形化配制 dpkg-reconfigure ca-certificates
      client:
      确认证书是 crt 结尾的,不是按照如下命令转换
      $ openssl x509 -inform PEM -in root-ca.cer -out root-ca.crt
      拷贝证书文件到 /usr/local/share/ca-certificates
      $ sudo cp root-ca.crt /usr/local/share/ca-certificates/
      修改ca 配置文件
      编辑 /etc/ca-certificates.conf。文件最后加入 ‘root-ca.crt’。里面文件的位置是相对 /usr/local/share/ca-certificates/
      更新本机的ca 文件
      $ sudo update-ca-certificates
      Mac OS X
      添加证书:
      sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ~/new-root-certificate.crt
      移除证书:
      sudo security delete-certificate -c “”
  • Error response from daemon: Get https://192.168.88.88/v2/: dial tcp 192.168.88.88:443: connect: connection refused
    在docker启动文件中添加–insecure-registry信任关系!
    cat /usr/lib/systemd/system/docker.service -> –insecure-registry=harbor仓库IP地址+端口号
    修改docker客户端配置/etc/default/docker
    备注:增加harbor私有仓库地址,告知客户端要连接http的端口
    DOCKER_OPTS=”–selinux-enabled –log-driver=journald –signature-verification=false –insecure-registry=192.168.88.98″
    Server DOCKER_OPTS=”–insecure-registry 192.168.88.98″
    vi /etc/systemd/system/multi-user.target.wants/docker.service
    ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS
  • denied: requested access to the resource is denied
    vi /etc/docker/daemon.json
    {
    "insecure-registries":["192.168.88.98:5000"],
    "registry-mirrors":["https://cuzn52f3.mirror.aliyuncs.com","https://registry.docker-cn.com","https://reg-mirror.qiniu.com"],
    "exec-opts": ["native.cgroupdriver=systemd"]
    }
    vi /etc/default/docker
    DOCKER_OPTS="--insecure-registry 192.168.88.98"
    vi /etc/systemd/system/multi-user.target.wants/docker.service
    可以在systemctl status docker 中查看具体配制文件路径
    ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS

    删除证书
    $sudo rm -f /usr/local/share/ca-certificates/xinmu.crt
    $sudo update-ca-certificates
    或编辑 /etc/ca-certificates.conf 文件,把证书对应的行删除或注释掉。然后用命令 update-ca-certificates 使之生效。

    1. FYI
      (https://blog.51cto.com/13043516/2287267)
      (http://blog.itpub.net/28624388/viewspace-2153546/)

Docker Compose

Docker Compose 可以轻松、高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具

安装 Docker Compose

官网
1. 安装 Docker Compose 可以通过下面命令自动下载适应版本的 Compose,并为安装脚本添加执行权限

sudo curl -L "https://github.com/docker/compose/releases/download/1.25.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

使用工具安装 pip install docker-compose

  1. 查看安装是否成功
    docker-compose -v

快速入门

  1. 打包项目,获得 jar 包 docker-demo-0.0.1-SNAPSHOT.jar
    mvn clean package
  2. 在 jar 包所在路径创建 Dockerfile 文件,添加以下内容
    FROM java:8
    VOLUME /tmp
    ADD docker-demo-0.0.1-SNAPSHOT.jar app.jar
    RUN bash -c ‘touch /app.jar’
    EXPOSE 9000
    ENTRYPOINT [“java”,”-Djava.security.egd=file:/dev/./urandom”,”-jar”,”app.jar”]
  3. 在 jar 包所在路径创建文件 docker-compose.yml,添加以下内容
version: '2' # 表示该 Docker-Compose 文件使用的是 Version 2 file
services:
  docker-demo:  # 指定服务名称
    build: .  # 指定 Dockerfile 所在路径
    ports:    # 指定端口映射
      - "9000:8761"

在 docker-compose.yml 所在路径下执行该命令 Compose 就会自动构建镜像并使用镜像启动容器
docker-compose up
docker-compose up -d // 后台启动并运行容器
访问 http://localhost:9000/hello 即可访问微服务接口

工程、服务、容器

Docker Compose 将所管理的容器分为三层,分别是工程(project)、服务(service)、容器(container)
Docker Compose 运行目录下的所有文件(docker-compose.yml)组成一个工程,一个工程包含多个服务,每个服务中定义了容器运行的镜像、参数、依赖,一个服务可包括多个容器实例
Docker Compose 常用命令与配置

常见命令

ps:列出所有运行容器
docker-compose ps
logs:查看服务日志输出
docker-compose logs
port:打印绑定的公共端口,下面命令可以输出 eureka 服务 8761 端口所绑定的公共端口
docker-compose port eureka 8761
build:构建或者重新构建服务
docker-compose build
start:启动指定服务已存在的容器
docker-compose start eureka
stop:停止已运行的服务的容器
docker-compose stop eureka
rm:删除指定服务的容器
docker-compose rm eureka
up:构建、启动容器
docker-compose up
kill:通过发送 SIGKILL 信号来停止指定服务的容器
docker-compose kill eureka
pull:下载服务镜像
scale:设置指定服务运气容器的个数,以 service=num 形式指定
docker-compose scale user=3 movie=3
run:在一个服务上执行一个命令
docker-compose run web bash
docker-compose.yml 属性

version:指定 docker-compose.yml 文件的写法格式
services:多个容器集合
build:配置构建时,Compose 会利用它自动构建镜像,该值可以是一个路径,也可以是一个对象,用于指定 Dockerfile 参数

““

build: ./dir

build:
context: ./dir
dockerfile: Dockerfile
args:
buildno: 1
command:覆盖容器启动后默认执行的命令

command: bundle exec thin -p 3000

command: [bundle,exec,thin,-p,3000]
dns:配置 dns 服务器,可以是一个值或列表

dns: 8.8.8.8

dns:
– 8.8.8.8
– 9.9.9.9
dns_search:配置 DNS 搜索域,可以是一个值或列表

dns_search: example.com

dns_search:
– dc1.example.com
– dc2.example.com
environment:环境变量配置,可以用数组或字典两种方式
environment:
RACK_ENV: development

SHOW: ‘ture’

environment:
– RACK_ENV=development
– SHOW=ture
env_file:从文件中获取环境变量,可以指定一个文件路径或路径列表,其优先级低于 environment 指定的环境变量

env_file: .env

env_file:
– ./common.env
expose:暴露端口,只将端口暴露给连接的服务,而不暴露给主机
expose:
– “3000”
– “8000”
image:指定服务所使用的镜像
image: java
network_mode:设置网络模式
network_mode: “bridge”
network_mode: “host”
network_mode: “none”
network_mode: “service:[service name]”
network_mode: “container:[container name/id]”
ports:对外暴露的端口定义,和 expose 对应
ports: # 暴露端口信息 – “宿主机端口:容器暴露端口”
– “8763:8763”
– “8763:8763”
links:将指定容器连接到当前连接,可以设置别名,避免ip方式导致的容器重启动态改变的无法连接情况
links: # 指定服务名称:别名
– docker-compose-eureka-server:compose-eureka
volumes:卷挂载路径
volumes:
– /lib
– /var
logs:日志输出信息
–no-color 单色输出,不显示其他颜.
-f, –follow 跟踪日志输出,就是可以实时查看日志
-t, –timestamps 显示时间戳
–tail 从日志的结尾显示,–tail=200
Docker Compose 其它

更新容器

当服务的配置发生更改时,可使用 docker-compose up 命令更新配置
此时,Compose 会删除旧容器并创建新容器,新容器会以不同的 IP 地址加入网络,名称保持不变,任何指向旧容起的连接都会被关闭,重新找到新容器并连接上去
links

服务之间可以使用服务名称相互访问,links 允许定义一个别名,从而使用该别名访问其它服务

version: ‘2’
services:
web:
build: .
links:
– “db:database”
db:
image: postgres
这样 Web 服务就可以使用 db 或 database 作为 hostname 访问 db 服务了

使用xrdp远程桌面连接

安装服务

sudo apt-get -y install xfce4 xrdp vnc4server

配置xfce4桌面会话文件

echo xfce4-session>.xsession

cat .xsession

ls -all

mstsc,输入ubuntu ip地址,默认端口:3350确定

使用远程桌面连接,如果输入正确的用户名和密码链接出错

apt-get purge tightvnc xrdp

apt-get install tightvncserver xrdp

sudo /etc/init.d/xrdp restart

=========================================

 安装tigervnc-server

apt -y install tightvncserver

vncserver命令启动vnc服务,设置输入秘钥

设置vnc参数编辑/etc/sysconfig/vncservers,参考最后面的参数设置。

1024×768是分辨率,后面的IP是vnc服务器的IP

重启vnc服务,/etc/init.d/vncserver restart

下载vnc客户端VNC客户端

netstat查看服务器的端口,然后设置客户端连接

 

ubuntu防火墙ufw

sudo apt-get install ufw
sudo ufw enable
sudo ufw default deny 

sudo ufw disable 
sudo ufw status 

sudo ufw allow 80 允许外部访问80端口

sudo ufw delete allow 80 禁止外部访问80 端口

sudo ufw allow from 192.168.1.1 允许此IP访问所有的本机端口

sudo ufw deny smtp 禁止外部访问smtp服务

sudo ufw delete allow smtp 删除上面建立的某条规则

sudo ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 22 要拒绝所有的TCP流量从10.0.0.0/8 到192.168.0.1地址的22端口

可以允许所有RFC1918网络(局域网/无线局域网的)访问这个主机(/8,/16,/12是一种网络分级):
sudo ufw allow from 10.0.0.0/8

sudo ufw allow from 172.16.0.0/12

sudo ufw allow from 192.168.0.0/16

FRP

FRP 项目地址:https://github.com/fatedier/frp
https://www.cnblogs.com/sanduzxcvbnm/p/8508741.html

一键安装脚本项目地址:https://github.com/clangcn/onekey-install-shell/

下载一键部署脚本
$ wget –no-check-certificate https://raw.githubusercontent.com/clangcn/onekey-install-shell/master/frps/install-frps.sh -O ./install-frps.sh

$ chmod 700 ./install-frps.sh 授权
这个一键部署脚本比较好用,为了提高国内用户下载安装包速度还提供了阿里云节点的安装源。整个脚本使用起来也比较简单,对一些常用的 FRP 服务端配置参数都做了交互式选择让用户可以方便的根据自己实际情况进行选择。脚本比较贴心的一点是对默认的公网地址进行了检测,省去了手动输入的麻烦。

install-frps.sh {install|uninstall|update|config}
配置 FRP $ ./install-frps.sh config
更新 FRP 服务端$ ./install-frps.sh update
卸载 FRP 服务端$ ./install-frps.sh uninstall

FRP 服务端安装完成后,一键部署脚本还提供了一个日常管理 FRP 服务端的管理脚本来进行日常的启动、重启、停止等操作,非常的方便。
frps status manage : frps {start|stop|restart|status|config|version}
新版可以直接使用不用以下配制

Usage: /etc/init.d/frps {start|stop|restart|status|config|version}

手动安装后配制成为服务启动 /etc/systemd/system# vi frps.service

[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
# User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frps -c /etc/frp/frps.ini
# /root/frp_0.20.0_linux_amd64
ExecStop=/bin/kill $MAINPID

[Install]
WantedBy=multi-user.target

#启动 frp 并设置开机启动
systemctl enable frpc
systemctl start frpc
systemctl status frpc

===

客户端下载 https://diannaobos.com/frp/
nohup ./frpc -c ./frpc.ini & 启用
jobs -l
ps -aux|grep frpc

2、修改配置文件    frpc.ini

[common]
server_addr = xxx.com
server_port = 5443

### console or real logFile path like ./frpc.log
log_file = ./frpc.log

### trace, debug, info, warn, error
log_level = info
log_max_days = 3

### for authentication
token = yourToken

### your proxy name will be changed to {user}.{proxy}
user = ser28

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 822

[http]
type = http
local_ip = 127.0.0.1
local_port = 80
subdomain = web28

[https]
type = https
local_ip = 127.0.0.1
local_port = 443
subdomain = web28

注意:访问服务端的80端口就相当于访问你本地的8080端口

3、启动

windows cmd里边进入frp客户端相应目录,启动frps.exe or frps.exe -c frpc.ini
注意保持与服务器版本一致和token的变化
# 0.17.0以前的版本 #privilege_token = yourToken
# 0.17.0以后的版本 token = yourToken
开启子域名,先设置*.xxx.com的解析,在frps.ini增加以下

subdomain_host = xxx.com

搭建ngrok服务器

apt-get install build-essential golang mercurial git     安装git 和Golang

git clone https://github.com/tutumcloud/ngrok.git ngrok

生成签名或申请SSL证书

cd ngrok

NGROK_DOMAIN=”ngrok.xxx.com”

openssl genrsa -out base.key 2048

openssl req -new -x509 -nodes -key base.key -days 10000 -subj “/CN=$NGROK_DOMAIN” -out base.pem

openssl genrsa -out server.key 2048

openssl req -new -key server.key -subj “/CN=$NGROK_DOMAIN” -out server.csr

openssl x509 -req -in server.csr -CA base.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt

替换证书

cp base.pem assets/client/tls/ngrokroot.crt  

cp server.crt assets/server/tls/snakeoil.crt

cp server.key assets/server/tls/snakeoil.key

编译

make release-server release-client

编译成功后会在bin目录下找到ngrokd和ngrok这两个文件。其中ngrokd 就是服务端程序。

启动服务端

./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain=“ngrok.xxx.com” -httpAddr=“:880” -httpsAddr=“:8443”

httpAddr、httpsAddr 分别是 ngrok 用来转发 http、https 服务的端口,可以随意指定。ngrokd 还会开一个 4443 端口用来跟客户端通讯(可通过 -tunnelAddr=”:xxx” 指定)。

服务端配置

设置为系统程序,并后台运行,在/etc/systemd/system/目录下创建服务ngrok.service,内容为

[Unit]
Description=ngrok server
After=network.target

[Service]

Type=simple
ExecStart=/opt/ngrok/ngrok/bin/ngrokd -tlsKey=/myweb/ngrok/server.key -tlsCrt=/myweb/ngrok/server.crt -domain=”ngrok.xxx.com” -httpAddr=”:80″ -httpsAddr=”:443″ -log "/var/log/ngrokd.log"

Restart=on-failure

[Install]
WantedBy=multi-user.target

systemctl start ngrok.service启动服务

使用服务

sudo systemctl enable ngrokd
sudo systemctl start ngrokd
sudo systemctl status ngrokd

编译客户端

(1)windows

GOOS=windows GOARCH=amd64 make release-client

(2)mac

GOOS=darwin GOARCH=amd64 make release-client

#linux客户端
GOOS=linux GOARCH=amd64(386) make release-client
#linux服务端
GOOS=linux GOARCH=386 make release-server

客户端配置

执行对应的命令会在bin目录下生成相对应的windows、mac目录,ngrok.exe就存放在对应目录下。将对应的ngrok.exe下载到本地。

在同级目录下新建一个配置文件ngrok.cfg

server_addr: “ngrok.xxx.com:4443”

trust_host_root_certs: false

同级目录下新建一个启动脚本startup.bat

@echo on

cd %cd%

#ngrok -proto=tcp 22

#ngrok start web

ngrok -config=ngrok.cfg -log=ngrok.log -subdomain=yjc 8080

 

客户端服务添加到 systemd 自启动服务中,保存下面内容到文件 /lib/systemd/system/ngrok.service

[Unit]
Description=ngrok client
After=network.target

[Service]
Type=simple
ExecStart=/opt/ngrok/ngrok -config "/opt/ngrok/ngrok.yml" -log "/var/log/ngrok.log" start transmission ssh
Restart=on-failure

[Install]
WantedBy=multi-user.target

ExecStart 加载了配置文件 /opt/ngrok/ngrok.ym
server_addr: ngrok.xxx.com:4443
trust_host_root_certs: false
tunnels:
  transmission:
    remote_port: 9091
    proto:
      tcp: 9091
  ssh:
    remote_port: 23333
    proto:
      tcp: 22

FYI:

Can’t load /root/.rnd into RNG

cd /root
openssl rand -writerand .rnd

ping ngrok.xxx.com 提示找不到 host, 直接把域名和 IP 写到内服务器的 /etc/hosts 文件上

Ubuntu安装VMware Workstation

sudo apt install build-essential

wget -O ~/vmware.bin https://www.vmware.com/go/getWorkstation-linux

sudo bash ~/vmware.bin

sudo vmware

15SN:

YZ718-4REEQ-08DHQ-JNYQC-ZQRD0
FZ1XH-ADE4M-H89UQ-GDMNV-WV0W6
VF5T0-4RW1H-H818Q-UMQEX-ZPHXA
FY1N0-AJZ9N-H89KQ-EXX59-MFUED
AU7TR-4RZ55-H8E3Z-XMYQC-N7ATD
VV38K-DXY9J-48EZQ-ZEZ5T-QZAC0

14SN:

FF31K-AHZD1-H8ETZ-8WWEZ-WUUVA
CV7T2-6WY5Q-48EWP-ZXY7X-QGUWD

 

卸载

sudo vmware-installer -u vmware-workstation

Ubuntu Vbox

Kernel driver not installed (rc=-1908)

关闭BIOS的安全引导

安装内核的头文件和构建工具。

$ sudo apt-get install build-essential module-assistant

 

could not insert ‘vboxdrv’: Operation not permitted

开启了Secure Boot的电脑上模块必须注册才允许执行,解决问题的办法就是注册这些模块。

一、找到MOK.priv地址并进入
locate MOK.priv

二、创建签名
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj “/CN=Descriptive name/”

三、注册模块
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vboxdrv)

四、注册 key 到 Secure Boot
sudo mokutil –import MOK.der

五、重启电脑->enroll MOK->continue->yes->(输入密码,后续要用到)->reboot

重启完成后再执行:sudo modprobe vboxdrv

gitlab安装配置使用

Docker install

gitlab-ce为稳定版本,后面不填写版本则默认pull最新latest版本

$ docker pull gitlab/gitlab-ce
docker pull twang2218/gitlab-ce-zh 汉化版

sudo docker run  --name gitlab \
  -itd \
  -p 443:443 -p 80:80 -p 222:22 \
  --privileged=true \
  -v /Users/sweet/gitlab/config:/etc/gitlab:Z \
  -v /Users/sweet/gitlab/logs:/var/log/gitlab:Z \
  -v /Users/sweet/gitlab/data:/var/opt/gitlab:Z \
  gitlab/gitlab-ce

 --restart always \

sudo docker exec -it gitlab /bin/bash
You can also just edit /etc/gitlab/gitlab.rb:
sudo docker exec -it gitlab editor /etc/gitlab/gitlab.rb

# gitlab.rb文件内容默认全是注释
$ vim /home/gitlab/config/gitlab.rb

# 配置http协议所使用的访问地址,不加端口号默认为80
external_url 'http://192.168.199.231'

# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '192.168.199.231'
gitlab_rails['gitlab_shell_ssh_port'] = 222 # 此端口是run时22端口映射的222端口
:wq #保存配置文件并退出
# 重启gitlab容器
$ docker restart gitlab

====================
sudo apt-get install -y curl openssh-server ca-certificates 依赖
sudo apt-get install -y postfix 发送邮件
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash 下载
sudo EXTERNAL_URL=“http://gitlab.example.com”apt-get install gitlab-ee 安装
首次访问时,您将被重定向到密码重置屏幕。提供初始管理员帐户的密码,您将被重定向回登录屏幕。使用默认帐户的用户名root登录

1)进入文件gitlab.rb,修改EXTERNAL_URL地址和端口号

sudo vim /etc/gir/gitlab.rb

sudo vim /etc/gitlab/gitlab.rb

EXTERNAL_URL 修改为本机服务地ip地址,并分配端口号(例如:4567)。

2)重新配置 sudo gitlab-ctl reconfigure

3)开启服务 service sshd start service postfix start

4)查看运行状态: sudo gitlab-ctl status 如果run正常,则成功
Git global setup

git config –global user.name “Administrator”
git config –global user.email “admin@example.com”

Create a new repository

git clone http://e132f243a5fe/shanpai/config.git
cd config
touch README.md
git add README.md
git commit -m “add README”
git push -u origin master

Push an existing folder

cd existing_folder
git init
git remote add origin http://e132f243a5fe/shanpai/config.git
git add .
git commit -m “Initial commit”
git push -u origin master

Push an existing Git repository

cd existing_repo
git remote rename origin old-origin
git remote add origin http://e132f243a5fe/shanpai/config.git
git push -u origin –all
git push -u origin –tags

ERROR

Url is blocked: Requests to the local network are not allowed
Admin area => Settings => Network ,然后点击 Outbound requests 右边 的“expand”按钮,选中Allow requests to the local network from web hooks and services

jar 工程 docker 方式部署

.编写超级简单版本的 dockerfile 文件:

# jdk 是一个已有的包含 jdk 的镜像 mcr.microsoft.com/java/jdk:8u232-zulu-ubuntu
FROM jdk
# 作者签名
MAINTAINER JY
# 简化 jar 的名字路径 (#:表示注释掉)
COPY jar/eurekaserver-0.0.1-SNAPSHOT.jar /app.jar

ADD  eurekaserver-0.0.1-SNAPSHOT.jar  /app.jar             #复制本地jar到镜像中

# 执行 java -jar 命令 (CMD:在启动容器时才执行此行。RUN:构建镜像时就执行此行)
CMD java -jar /app.jar

#CMD [“bash”,“-c”,“java -jar app.jar”]

ENTRYPOINT  [“java”,“-jar”,“app.jar”]     #执行的命令

# 设置对外端口
EXPOSE 8761

通过 dockerfile 文件生成本工程的镜像:
docker build -t gentle .

======================================

参考自动脚本构建

cd gentle_code
# 备份原代码
tar -zcvf gentle.tar ./gentle
# 删除原代码文件夹
rm -rf gentle
# 拉取代码
echo -e “\033[32m\n从git拉取代码\n\033[0m”
git clone https://gitee.com/FJ_WoMenDeShiJie/gentle.git
echo -e “\033[32m\n代码拉取完成\n\033[0m”
# 工程打包
cd gentle
rm -rf ./target/gentle-1.0-SNAPSHOT.jar
echo -e “\033[32m\n开始打jar包\n\033[0m”
mvn install -Dmaven.test.skip=true
rm -rf ../../jar/gentle-1.0-SNAPSHOT.jar
cp ./target/gentle-1.0-SNAPSHOT.jar ../../jar
echo -e “\033[32m\njar包完成\n\033[0m”
# 删除原镜像
docker rmi gentle &> /dev/null
echo -e “\033[32m\n删除原镜像\n\033[0m”
echo -e “\033[32m\n构建新镜像\n\033[0m”
cd ../../
docker build -t gentle .
echo -e “\033[32m\n新镜像构建成功\n\033[0m”
# 删除原容器
docker rm -f gentle
# 启动容器
docker run -d -p 8089:8089 –name gentle gentle
echo -e “\033[32m\n后端工程部署完成\n\033[0m”
======================================

或者使用手动更新jar包时,需要在把xxx.jar包复制进容器时,统一重命名为app.jar
docker cp 宿主机jar包 容器名(或容器ID):/app.jar

说明:此方式的优势在于:每次如果要更新jar包,只需要先将容器stop,然后直接替换容器里面的jar包,最后再将该容
器start即可。无需每次都创建新的镜像,创建新的容器。