docker目录中存放下列内容。
server {
listen 8000;
index index.html;
root /var/www/public;
charset utf-8;
client_max_body_size 32M;
location / {
root /var/www/public;
index index.html;
}
#静态文件,nginx处理
location ~ ^/(images|javascript|js|css|flash|media|static)/{
root /var/www/public;
#过期时间1天
expires 1d;
#关闭媒体文件日志
access_log off;
log_not_found off;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/public;
}
error_page 404 /404.html;
location = /404.html {
root /var/www/public;
}
#禁止访问的文件.htxxx
location ~ /\.ht {
deny all;
}
}
user nginx;
#==worker进程数,通常设置等同于CPU数量,auto为自动检测
worker_processes 1;
#==worker进程打开最大文件数,可CPU*10000设置
worker_rlimit_nofile 10000;
error_log /data/logs/error.log warn;
pid /var/run/nginx.pid;
events {
#==worker进程同时打开的最大连接数,可CPU*2048设置
worker_connections 2048;
#==告诉nginx收到一个新链接通知后接受尽可能多的链接
multi_accept on;
#==设置用于复用客户端线程的轮训方法
use epoll;
}
http {
#打开或关闭错误页面中的nginx版本号deng
server_tokens off;
include /etc/nginx/mime.types;
default_type text/html;
charset UTF-8;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /data/logs/access.log main;
#==优化磁盘IO设置,指定nginx是否调用sendfile函数来输出文件,普通应用设为on,下载等磁盘IO高的可设为off
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
daemon off;
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge,chrome=1">
<meta name="viewport" content="width=device-width">
<title>出错了</title>
</head>
<body>
<div id="ice-container">
<div class="ice-layout ice-blank-layout" style="min-height: 100vh;">
<div class="page3-page">
<div class="empty-content">
<div class="container-block " style="background-color: rgb(255, 255, 255); border-radius: 6px; padding: 20px; margin-bottom: 20px;">
<div class="exception-content" style="display: flex; justify-content: center; align-items: center;">
<img src="https://img.alicdn.com/tfs/TB1w4M7bNrI8KJjy0FpXXb5hVXa-260-260.png" class="imgException" alt="empty" style="max-width: 100px;margin-right: 10px;">
<div>
<h3 class="title" style="color: rgb(51, 51, 51);">服务器异常</h3>
<p class="description" style="color: rgb(102, 102, 102);">服务器异常,请刷新或返回</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge,chrome=1">
<meta name="viewport" content="width=device-width">
<title>您访问的内容不存在</title>
</head>
<body>
<div id="ice-container">
<div class="ice-layout ice-blank-layout" style="min-height: 100vh;">
<div class="page3-page">
<div class="empty-content">
<div class="container-block " style="background-color: rgb(255, 255, 255); border-radius: 6px; padding: 20px; margin-bottom: 20px;">
<div class="exception-content" style="display: flex; justify-content: center; align-items: center;">
<img src="https://img.alicdn.com/tfs/TB1WNNxjBHH8KJjy0FbXXcqlpXa-780-780.png" class="imgException" alt="empty" style="max-width: 100px;margin-right: 10px;">
<div>
<h3 class="title" style="color: rgb(51, 51, 51);">页面暂无内容</h3>
<p class="description" style="color: rgb(102, 102, 102);">抱歉,页面暂无内容,请看看其他页面</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
FROM leonard47/nginx-frontend-webserver
EXPOSE 8000
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai" > /etc/timezone
RUN mkdir -p /data/logs/
ADD build/ /var/www/public/${YOUR_CONTEXT_PATH}
ADD 50x.html /var/www/public/
ADD 404.html /var/www/public/
conf/default.conf里listen的端口号Dockerfile 里端口号重写nginx配置、调优
定义虚拟主机,文件处理
自定义无资源页面
自定义服务器异常页面
Exec Shell:
cd $WORKSPACE/
rm -rf ./*.zip
sleep 1
tar cvzf ${JOB_BASE_NAME}.zip ./build ./docker
sleep 5
After Build: transfer set ${JOB_BASE_NAME}.zip TO /images_ci/${JOB_BASE_NAME}
cd /images_ci/${JOB_BASE_NAME}
rm -rf ./build ./docker
sleep 5
tar xvzf ./${JOB_BASE_NAME}.zip
sleep 5
rm -rf ./${JOB_BASE_NAME}.zip
sleep 1
cp -ri -rf ./build/ ./docker/
sleep 5
#docker
cd /images_ci/${JOB_BASE_NAME}/docker
docker rm -f ${JOB_BASE_NAME}
sleep 1
docker rmi */${JOB_BASE_NAME}:jenkins
sleep 5
docker build -t */${JOB_BASE_NAME}:jenkins .
参数:PROJECT/GIT_GROUP/GIT_BRANCH/MAVEN_MODULE/VERSION
env.GIT='ssh://git@git/'+env.GIT_GROUP+'/'+env.PROJECT+'.git'
env.BRANCH = '*/'+env.GIT_BRANCH
def timeStamp = Calendar.getInstance().getTime().format('YYYYMMddhhmmss',TimeZone.getTimeZone('Asia/Shanghai'))
env.BUILD_TIMESTAMP = env.SANDBOX=='development' ? 'jenkins': timeStamp
env.BUILD_HARBOR_TARGET = env.SANDBOX=='development' ? 'ci': 'k8s'
//println(env.BUILD_HOSTS)
node("BUILD-NODE"){
stage('Git Checkout'){
sh '''
rm -rf ./*
'''
checkout([$class: 'GitSCM', branches: [[name: env.BRANCH]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'git-token',url: env.GIT]]])
}
stage('Build and Push Image'){
withCredentials([string(credentialsId: 'hub-token', variable: 'HUB_TOKEN')]) {
sh '''
cp -ri -rf ./build/ ./docker/
docker login -u username -p ${HUB_TOKEN} hub.*.com
cd docker
docker build -t domainname/${BUILD_HARBOR_TARGET}/${MODULE_NAME}:${BUILD_TIMESTAMP} .
docker push domainname/${BUILD_HARBOR_TARGET}/${MODULE_NAME}:${BUILD_TIMESTAMP}
'''
}
}
}
for (item in env.HOSTS.tokenize(',')){
node(item){
stage('Pull Image And Run on ' + item){
withCredentials([string(credentialsId: 'hub_token_id', variable: 'HUB_TOKEN')]) {
sh '''
set +e
sleep 10
docker rm -f ${MODULE_NAME}
docker pull domainname/${BUILD_HARBOR_TARGET}/${MODULE_NAME}:${BUILD_TIMESTAMP}
docker run -d -v /data0/${MODULE_NAME}/logs:/data/logs --name ${MODULE_NAME} --net="host" \
--ulimit nofile=200000 -v /etc/localtime:/etc/localtime:ro \
domainname/${BUILD_HARBOR_TARGET}/${MODULE_NAME}:${BUILD_TIMESTAMP}
'''
}
}
}
}
Content type
Image
Digest
Size
42.6 MB
Last updated
almost 6 years ago
docker pull leonard47/nginx-frontend-webserver