目录
2、"worker_processes" directive is not allowed here
3、本地登录验证码测试正常,使用docker上线后报空指针问题
主节点master:192.168.3.200
子节点node1:192.168.3.201
子节点node2:192.168.3.202
安装方式略。
http://192.168.3.200,输入用户名密码登录,初始用户名为admin,密码配置在【harbor.cfg】配置文件中的【harbor_admin_password】属性。

部署在主节点上,需要在harbor目录下输入命令,常用命令如下:
# 查看harbor服务状态
docker-compose ps
# 重启harbor
docker-compose restart
# 打标签,例如
docker tag centos:7 192.168.3.200/library/centos:7
# 上传,例如
docker push 192.168.3.200/library/centos:7
# 下载,例如
docker pull 192.168.3.200/library/centos:7
docker和harbor之间交互的基本使用
配置http镜像仓库可信任(docker默认是通过https访问harbor的,但是私有仓库是在公司内网的话,没有必要配置https, 所以我们要在daemon.json配置harbor服务器地址被docker认为是可信任的站点;如果docker通过https访问harbor,就不需要进行如下设置)。
我的daemon.json位置在:/etc/docker/daemon.json
配置内容如下:
{
"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"],"insecure-registries":["192.168.3.200"]
}
修改完后需要重启docker,因为harbor也是运行在docker容器里的。
我这里的项目是由Spring Boot+vue组成。
上传到服务器中合适的位置,上传完成后解压:unzip dist.zip
在dist同级目录创建default.conf文件:sudo vim default.conf
这里以我的项目为例:
server {
listen 9000;
server_name localhost;
location /DLHYXT/dsmMgr {
root /BJ/;
proxy_set_header Host $host;
try_files $uri $uri/ /DLHYXT/dsmMgr/index.html $uri/ =404;
index index.html index.htm;
}
location /api/v1/note {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header x-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.3.200:32081;
}
location /api/v1/dsm {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header x-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.3.200:32351;
}
location /randCodeImage {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.3.200:32081;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
同级目录下创建Dockerfile文件:sudo vim Dockerfile
# 基于nginx镜像
FROM nginx:latest
# 作者
MAINTAINER "ly"
# 描述
LABEL description="VUE TODO"
# 将打包文件复制到nginx镜像目录下
COPY dist/ /BJ/DLHYXT/dsmMgr/
# 配置文件复制到nginx镜像中对应的目录下
COPY default.conf /etc/nginx/conf.d/default.conf
env LANG=C.UTF-8
执行docker build -f Dockerfile -t web-todo .
最后的.表示Dockerfile在当前目录,-t设置生成的镜像名称。
当只有一个Dockerfile的时候,可以省略-f,即:
docker build -t web-todo .

看到Successfully则表示成功,执行成功后可以通过docker images |grep web-todo查看已生成的镜像。
docker tag web-todo:latest 192.168.3.200/library/web-todo:v1
docker push 192.168.3.200/library/web-todo:v1
注意:第一次需要登录harbor:docker login 192.168.3.200,输入用户名密码即可推送成功。
docker images

通过编译器打包获得对应的后端jar包,然后上传到服务器对应位置
jar包同级目录下创建:sudo vim Dockerfile
由于我的是两个jar包,所以需要创建两个Dockerfile,分别为:
DockerfileDsm
# jdk基础镜像
FROM frolvlad/alpine-oraclejdk8:slim
# 容器中创建目录
RUN mkdir -p /usr/local/dsm
# 编译后的jar包copy到容器中创建到目录内
COPY hy-dsm-service.jar /usr/local/dsm/dsm.jar
# 指定容器启动时要执行的命令
ENTRYPOINT ["java","-jar","/usr/local/dsm/dsm.jar"]
DockerfileNote
FROM frolvlad/alpine-oraclejdk8:slim
RUN mkdir -p /usr/local/note
COPY note-0.0.1-SNAPSHOT.jar /usr/local/note/note.jar
ENTRYPOINT ["java","-jar","/usr/local/note/note.jar"]
docker build -f DockerfileDsm -t dsm-k8s .
docker build -f DockerfileNote -t note-k8s .
docker tag dsm-k8s:latest 192.168.3.200/library/dsm-k8s:v1
docker tag note-k8s:latest 192.168.3.200/library/note-k8s:v1
docker push 192.168.3.200/library/dsm-k8s:v1
docker push 192.168.3.200/library/note-k8s:v1
docker images

k8s管理项目主要是靠yaml,这次部署的java-vue.yaml如下
# vue资源的类型/角色:deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-todo
# 命名空间无
namespace: default
labels:
app: web-todo
spec:
replicas: 1 # 副本数量为1
selector:
matchLabels:
app: web-todo
template:
metadata:
labels:
app: web-todo
spec:
imagePullSecrets:
- name: harbor-secret
containers:
- name: web-todo
# 镜像获取地址
image: 192.168.3.200/library/web-todo:v1
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9000
name: web-todo
resources:
requests:
memory: 300Mi
cpu: 0.4
limits:
memory: 500Mi
cpu: 1
---
# vue资源的类型/角色:svc
kind: Service
apiVersion: v1
metadata:
name: web-todo
namespace: default
labels:
app: web-todo
spec:
type: NodePort
ports:
- port: 9000
nodePort: 30260 #service对外开放端口
selector:
app: web-todo
---
# dsm jar资源的类型/角色:svc
apiVersion: v1
kind: Service
metadata:
name: dsm-k8s
namespace: default
labels:
app: dsm-k8s
spec:
type: NodePort
ports:
- port: 9093
nodePort: 32351 #service对外开放端口
selector:
app: dsm-k8s
---
# dsm jar资源的类型/角色:deployment
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: dsm-k8s
name: dsm-k8s
spec:
replicas: 2
selector:
matchLabels:
app: dsm-k8s
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: dsm-k8s
spec:
containers:
- image: 192.168.3.200/library/dsm-k8s:v1
name: dsm-k8s
imagePullPolicy: Never
resources: {}
status: {}
---
# note jar资源的类型/角色:svc
apiVersion: v1
kind: Service
metadata:
name: note-k8s
namespace: default
labels:
app: note-k8s
spec:
type: NodePort
ports:
- port: 8094
nodePort: 32081 #service对外开放端口
selector:
app: note-k8s
---
# note jar资源的类型/角色:svc
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: note-k8s
name: note-k8s
spec:
replicas: 2
selector:
matchLabels:
app: note-k8s
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: note-k8s
spec:
containers:
- image: 192.168.3.200/library/note-k8s:v1
name: note-k8s
imagePullPolicy: Never
resources: {}
status: {}
执行命令:
kubectl create -f java-vue.yaml
kubectl get pods -o wide
如果pod都在running状态,表示项目就都起好了。

kubectl get deployment
kubectl get svc


# 查看所有镜像
docker images
# 查看所有运行的进程
docker ps -a
# 停止运行
docker stop id
# 删除承载进程的容器
docker rm id
# 删除镜像,id为镜像id
docker rmi id
# 创建命名空间can
kubectl create namespace can
# 查看命名空间can下的pod状态
kubectl get pods -n can -o wide
# 查看pod状态
kubectl get pods -o wide
# 删除pod
kubectl delete pods <pod-name>
kubectl delete pods <pod-name> -n <namespace-name>
# 查看命名空间can下的deployment
kubectl get deployment -n can
# 查看deployment
kubectl get deployment
# 删除deployment
kubectl delete deployment <deploy-name>
kubectl delete deployment <deploy-name> -n <namespace-name>
# 查看命名空间can下的service
kubectl get svc -n can
# 查看service
kubectl get svc
# 删除service
kubectl delete svc <svc-name>
kubectl delete svc <svc-name> -n <namespace-name>
kubectl logs <pod-name>
kubectl describe pod <pod-name>
docker rmi [REPOSITORY]:[TAG]
删除时带上版本号即可针对性删除。
查看pod日志时发现报了这个错,原因是:
完整的nginx.conf是放在/etc/nginx/nginx.conf中,我们这里是文件复制到/etc/nginx/conf.d/default.conf中,所以只需要保留ngnix.conf中的server部分。
查看pod日志时报了下列错误

发现是jdk的锅。 我一开始的时候,jar包的Dockerfile使用的是
FROM openjdk:8-jdk-alpine
最后发现,openjdk镜像中对于一些jdk底层jar包并不支持,后来使用
FROM frolvlad/alpine-oraclejdk8:slim
完美解决问题。
如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby
我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘
我已经像这样安装了一个新的Rails项目:$railsnewsite它执行并到达:bundleinstall但是当它似乎尝试安装依赖项时我得到了这个错误Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingforlibkern/OSAtomic.h...yescreatingMakefilemake"DESTDIR="cleanmake"DESTDIR="
我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie
假设我有这个范围:("aaaaa".."zzzzz")如何在不事先/每次生成整个项目的情况下从范围中获取第N个项目? 最佳答案 一种快速简便的方法:("aaaaa".."zzzzz").first(42).last#==>"aaabp"如果出于某种原因你不得不一遍又一遍地这样做,或者如果你需要避免为前N个元素构建中间数组,你可以这样写:moduleEnumerabledefskip(n)returnto_enum:skip,nunlessblock_given?each_with_indexdo|item,index|yieldit
我可以在Azure网站上部署RubyonRails吗? 最佳答案 还没有。目前仅支持.NET和PHP。 关于ruby-on-rails-RubyonRails可以部署在Azure网站上吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12964010/
1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里
前置步骤我们都操作完了,这篇开始介绍jenkins的集成。话不多说,看操作1、登录进入jenkins后会让你选择安装插件,选择第一个默认的就行。安装完成后设置账号密码,重新登录。2、配置JDK和Git都需要执行路径,所以需要先把执行路径找到,先进入服务器的docker容器,2.1JDK的路径root@69eef9ee86cf:/usr/bin#echo$JAVA_HOME/usr/local/openjdk-82.2Git的路径root@69eef9ee86cf:/#whichgit/usr/bin/git3、先配置JDK和Git。点击:ManageJenkins>>GlobalToolCon
深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal
Ocra无法处理需要“tk”的应用程序require'tk'puts'nope'用奥克拉http://github.com/larsch/ocra不起作用(如链接中的一个问题所述)问题:https://github.com/larsch/ocra/issues/29(Ocra是1.9的"new"rubyscript2exe,本质上它用于将rb脚本部署为可执行文件)唯一的问题似乎是缺少tcl的DLL文件我不认为这是一个问题据我所知,问题是缺少tk的DLL文件如果它们是已知的,则可以在执行ocra时将它们包括在内有没有办法知道tk工作所需的DLL依赖项? 最佳答