以docker方式 实现 satis compose 代码仓库

拉取 composer/satis 镜像

docker pull composer/satis

说明: 下文说明存放数据的结构是

%docker>nodetree -L 3
.
├── docker-compose.yml
├── docker_data
│   ├── composer          # 存放satis 容器运行时使用到的配置文件的文件夹
│   │   ├── auth.json
│   │   ├── cache
│   │   ├── composer.json
│   │   └── config.json
│   ├── composer_public    # 编译包输出的文件夹
│   │   ├── dist           # 编译后会自动生成的文件夹
│   │   ├── include        # 编译后会自动生成的文件夹
│   │   ├── index.html     # 编译后会自动生成的文件
│   │   ├── p2             # 编译后会自动生成的文件夹
│   │   └── packages.json  # 编译后会自动生成的文件
├── README.md

生成公钥

ssh-keygen -t rsa
然后将生成的 公钥添加到gitlab 中
● 测试代码拉取 :
 git clone   [email protected]  .

编写build脚本

[root@server ~]# cat satis.sh 
#!/bin/bash

rm -rf /data/nginx/html/docker_data/composer_public/*   #删除上次生成

docker run --rm --init -it -v \            #run --rm 是运行一次就退出 /data/nginx/html/docker_data/composer/config.json:/satis.json:ro \
-v /root/.ssh/:/root/.ssh/ \    #因为gitlab公钥是宿组机的,所有将.ssh挂载到容器中
-v /data/nginx/html/docker_data/composer_public:/build \
-v /data/nginx/html/docker_data/composer:/composer \
composer/satis build /satis.json /build

config.json

[root@server ~]# cat /data/nginx/html/docker_data/composer/config.json
{
    "name": "noname007/satis",
    "homepage": "http://locaxxst:83/satis/",
    "repositories": [
        {
            "type": "git",
            "url": "[email protected]:force/yzz.git"
        }
    ],
    "require": {
        "php-sxxxxk/lxxxzz": "*"
    },
    "config": {
            "secure-http": false
    },
    "archive": {
       "directory": "dist",
        "format": "tar",
        "skip-dev": true
    }

}

nginx 静态站点配置

这里nginx采用docker 的方式
docker run --name nginx83 -d -p 83:80  --restart=always  -v /data/nginx/html:/usr/share/nginx/html -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf  -v /data/nginx/logs:/var/log/nginx -v /data/nginx/conf.d:/etc/nginx/conf.d -v /mnt/data/guanghePic:/mnt/data/guanghePic -d nginx:1.19.1

file.conf

[root@server conf.d]# ls
file.conf  satis.conf.bak
[root@server conf.d]# cat file.conf 
server {
 
    listen       80;
    server_name  localhost;
 
    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;
 
    location /satis {
        alias   /usr/share/nginx/html/docker_data/composer_public;
             autoindex on;
             autoindex_exact_size off;
             autoindex_localtime on;
    }
}

执行

./satis.sh

以docker方式 实现 satis compose 代码仓库_第1张图片

你可能感兴趣的:(以docker方式 实现 satis compose 代码仓库)