准备工作

开始

下载镜像

docker pull idoop/docker-nuget-server docker镜像地址

环境(文件)准备

  • 文件目录
    /var/nuget 存放 nuget-server 的文件 包含 /db , /packagefiles 两个文件夹
    /usr/nuget 存放 nuget-server 的docker-compose 文件

  • 宿主机创建文件夹 /var/nuget/db /var/nuget/packages 用于映射镜像存储的数据库和包文件

运行镜像

使用docker command

docker run -d -p 5000:80 -e NUGET_API_KEY="Serverr2" -v /var/nuget/db:/var/www/simple-nuget-server/db -v /var/nuget/packagefiles:/var/www/simple-nuget-server/packagefiles --restart always --name nuget-server idoop/docker-nuget-server

由于网络和链接的问题上述命令在服务器可能无法使用可以更改为

1
2
3
4
5
6
7
8
docker run -d --name nuget-server -p 1081:80 \
-v /gitdata/nugetserver/db:/var/www/simple-nuget-server/db \
-v /gitdata/nugetserver/packages:/var/www/simple-nuget-server/packagefiles \
-v /gitdata/nugetserver/nginx:/etc/nginx -e NUGET_API_KEY="Serverr2" \
-e SERVER_NAME="192.168.0.159" \
-e SERVER_PORT="80" \
--restart always \
idoop/docker-nuget-server

命令解释:
将容器的80端口 映射到主机的5000 端口 -p 5000:80
设置Nuget_api_key 设置为 xxx -e NUGET_API_KEY=oy2idwuya26l2vqd26taoeskx7p4pevurd3325qjb5gnfe
设置文件映射 -v /var/nuget/db:/var/www/db -v /var/nuget/packages:/var/www/packagefiles
设置容器名称 --name nuget
来源镜像名称 idoop/docker-nuget-server

使用 docker compose

用[docker-compose](/notes/docker#Docker Compose),因为敲命令太长了

  • 文件目录
    /usr/nuget 存放 nuget-server 的docker-compose 文件

  • docker-compose.yml 文件内容

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    version: '2'
    services:
    nuget-server:
    container_name: nuget-server
    image: idoop/docker-nuget-server:latest
    network_mode: "host"
    restart: always
    environment:
    NUGET_API_KEY: "nugetkey"
    UPLOAD_MAX_FILESIZE: "40M"

    ## When use host network mode,
    ## set SERVER_PORT value if you want change server expose port.
    SERVER_PORT: "5000"

    ## Set nuget server domain[:port], also you can use machine(not container) ip[:port].
    ## eg: "192.168.11.22:8080" or "nuet.eg.com:8080"
    ## SERVER_NAME: "nuget.example.com"
    WORKER_PROCESSES: "2"
    volumes:
    - nuget-db:/var/www/simple-nuget-server/db
    - nuget-packagefiles:/var/www/simple-nuget-server/packagefiles
    - nuget-nginx:/etc/nginx
    ulimits:
    nproc: 8096
    nofile:
    soft: 65535
    hard: 65535
    volumes:
    nuget-db:
    driver: local
    driver_opts:
    type: 'none'
    o: 'bind'
    device: '/var/nuget/db'
    nuget-packagefiles:
    driver: local
    driver_opts:
    type: 'none'
    o: 'bind'
    device: '/var/nuget/packagefiles'
    nuget-nginx:

  • 启动容器 进入目录 cd /usr/nuget docker-compose up -d

测试

访问网址 https://192.168.6.188:5000 出现xml页面表示成功

使用

搬运链接

打包

下载 PackageExplorer 工具

选中需要上传的dll

点击 File - Publish 输入 nuget-server 地址和 app_key 即可

获取包

从搭建好的个人 nuget-server 获取dll包

Vs - 工具 - Nuget -管理Nuget程序包 - 设置 - 添加包源 即可