搭建alpine安装源

      最近更新docker镜像时,需要从alpine的安装源上拉取些包,但是服务器down掉了,而且找不到相应的维护人员,于是决定准备自己搭建一套

首先从网上拉取3.5版本的apk包,脚本如下:

wget -r -np -nH http://nl.alpinelinux.org/alpine/v3.5/main/x86_64/ 
wget -r -np -nH http://nl.alpinelinux.org/alpine/v3.5/community/x86_64/

拉取这两个目录(main路径下为官方提供的apk包,community路径下为社区提供的包)大致需要1天多,拉取完成之后,拷贝到待安装的服务器(为了便于区分,我们叫它新服务器)上,为了提高效率,可以压缩之后再上传到新服务器。

剩下的工作就是安装服务,并将其挂载到服务器下,因所有的文件都是静态资源,用NGINX作为服务器更具有优势,因此选取NGINX作为服务器容器,需要配置本地资源;配置NGINX的conf文件;挂载本地资源到容器上。

配置本地资源:

在nginx根目录下创建conf、conf.d、html文件夹,将alpine文件包放到html文件夹下面,创建启动脚本start.sh

在conf下,创建nginx.conf文件,脚本详情如下:

user nginx;
worker_processes auto;

error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;

events{
  worker_connections 1024;
}

http{
  include /etc/nginx/mime.types;
  default_type application/octet-stream;
  log_format main '$stream_addr - $remote_user [$time_local] "$request" '
                   '$status $body_bytes_sent "$http_referer" '
                   ' "$http_user_agent "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;

server {
  listen 80;
  server_name locahost;
  charset utf-8;
   root /usr/share/nginx/html;
   location / {
      autoindex on;
      autoindex_exact_size off;
      autoindex_localtime on;
   }
}
keepalive_timeout 65;

include /etc/nginx/conf.d/*.conf;
}

我在nginx.conf里的配置已经能满足要求,因此未在conf.d下配置任何东西,

然后是启动脚本,使用镜像 nginx:1.11.5-alpine,启动脚本如下(命名为start.sh)

#!/bin/bash
path=/home/nginx
docker run -d --name alpine-repo-src \
   -v $path/html:/usr/share/nginx/html \
   -v $path/conf/nginx.conf:/etc/nginx/nginx.conf:ro \
   -v $path/conf.d:/etc/nginx/conf.d \
   nginx:1.11.5-alpine

将start.sh修改为可执行文件、并执行

chmod +x start.sh && sh start.sh

然后打开浏览器、输入新服务器的IP,便可以查看所有的apk包了

接下来是验证是否能够正常工作

创建一个dockerfile,如下

FROM alpine:3.7

MAINTAINER HEZS "[email protected]"

RUN echo "http://myhostip/alpine/v3.5.main" > /etc/apk/repositories && \
  apk update && apk upgrade && apk add openssh
如果构建成功,则表示源能正常使用

你可能感兴趣的:(技术文档,镜像制作,镜像制作alpine源,NGINX)