我将健康检查添加到我的 Dockerfile 中:
HEALTHCHECK --interval=1m --timeout=5s --retries=2 --start-period=10s \
CMD wget -qO- http://localhost:8070/healthcheck || exit 1
Run Code Online (Sandbox Code Playgroud)
在我的项目主 urls.py 文件中,我添加了条目:
url(r'^healthcheck/', lambda r: HttpResponse())
Run Code Online (Sandbox Code Playgroud)
该项目已激活并部署,因此我可以理解运行状况检查是有效的,但是 - 我不断收到:
2017-12-17 13:25:27,891 警告基地 51 140551932685128 未找到:/healthcheck
写入日志(每分钟一次)。当我从服务器内部运行 wget 时,也会添加日志条目。
是否是 healthcheck 语法、django 条目设置或 docker 中的 wget 有问题?
请协助。谢谢。
我收到错误消息:
错误验证“ mysql.yaml”:错误验证数据:ValidationError(Deployment.spec.template.spec.volumes [0]):io.k8s.kubernetes.pkg.api.v1.Volume中的未知字段“ path”;)
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: mysql
labels:
app: mysql
spec:
replicas: 1
selector:
matchLabels:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers:
- image: mysql:5.6
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql
key: password
ports:
- containerPort: 3306
name: mysql
volumeMounts:
- name: mapping-sandbox-test
mountPath: /var/lib/mysql
volumes:
- name: mapping-sandbox-test
path: gs://<bucket-name>
Run Code Online (Sandbox Code Playgroud) google-cloud-storage kubernetes google-kubernetes-engine docker-volume
我想为我的 docker 映像安装 libwebp 依赖项。如何使用 docker 文件下载并安装 libwebp?一种方法是您可以下载 libwebp 和 ADD 文件到映像,如下所示。
ADD resources/vts/libwebp-0.4.1-linux-x86-64 /lib/libwebp-0.4.1-linux-x86-64
Run Code Online (Sandbox Code Playgroud)
但我需要通过运行这样的命令来安装它。
RUN apk upgrade -U \ && apk add ca-certificates ffmpeg \ && rm -rf/var/cache/*
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?我参考下图来创建我的 docker 文件
FROM openjdk:8-jdk-alpine
Run Code Online (Sandbox Code Playgroud) 创建了一个dotnet核心应用程序并在运行命令时:
docker-compose up
Run Code Online (Sandbox Code Playgroud)
一切顺利,但是我不明白下面的意思是什么:
现在收听:http:// [::]:80
Dockerfile的内容为:
FROM microsoft/aspnetcore:2.0
ARG source
WORKDIR /app
EXPOSE 80
COPY ${source:-obj/Docker/publish} .
ENTRYPOINT ["dotnet", "SampleCoreApp.dll"]
Run Code Online (Sandbox Code Playgroud)
docker-compose文件为:
version: '3'
services:
samplecoreapp:
image: samplecoreapp
build:
context: ./SampleCoreApp
dockerfile: Dockerfile
Run Code Online (Sandbox Code Playgroud)
为什么我看不到IP地址?
如果我有3个VM,并且要在VM2上运行此应用程序,那么如何将这个Docker容器部署到VM2?
实际上,我有一个使用的图像angular-cli:
<img src="" style="width: 120px; padding-top: 10px" alt="" id="dishPhoto">
Run Code Online (Sandbox Code Playgroud)
和 Base64 图像网址imgUrl。所以我想设置 img src:
let img = document.getElementById('dishPhoto');
img.setAttribute('src',this.imgUrl);
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
document.getElementById(...) 为 null
你能帮我解决它吗?
在部署nginx(或任何应用程序)之后,我尝试使用以下配置文件公开它:
apiVersion: v1
kind: Service
metadata:
name: nginx
labels:
app: nginx
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 80
selector:
app: nginx
Run Code Online (Sandbox Code Playgroud)
结果:
C:\install\kube>kubectl get service -l app=nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx LoadBalancer 10.108.193.215 <pending> 80:31035/TCP 21h
Run Code Online (Sandbox Code Playgroud)
请注意,端口号31035是随机分配的.是否可以定义特定端口?
版本:
C:\install\kube>minikube version
minikube version: v0.24.1
C:\install\kube>kubectl version
Client Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.0", GitCommit:"6e937839ac04a38cac63e6a7a306c5d035fe7b0a", GitTreeState:"clean", BuildDate:"2017-09-28T22:57:57Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"windows/amd64"}
Server Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.0", GitCommit:"0b9efaeb34a2fc51ff8e4d34ad9bc6375459c4a4", GitTreeState:"clean", BuildDate:"2017-11-29T22:43:34Z", GoVersion:"go1.9.1", Compiler:"gc", Platform:"linux/amd64"}
Run Code Online (Sandbox Code Playgroud) 在Dockerfile中运行yarn安装时无法获取node_modules文件夹
test-sof
??? docker-compose.yml
??? Dockerfile
??? package.json
??? yarn.lock
Run Code Online (Sandbox Code Playgroud)
docker-compose.yml
version: '3'
services:
web:
build: .
volumes:
- .:/myapp
Run Code Online (Sandbox Code Playgroud)
package.json
{
"name": "site",
"private": true,
"dependencies": {
"@rails/webpacker": "^3.2.1",
"babel-preset-react": "^6.24.1",
"prop-types": "^15.6.0",
"react": "^16.2.0",
"react-dom": "^16.2.0",
"reactjs": "^1.0.0",
"underscore": "^1.8.3"
},
"devDependencies": {
"webpack-dev-server": "^2.11.1"
}
}
Run Code Online (Sandbox Code Playgroud)
Dockfer文件
FROM ruby:2.5
RUN curl -sL https://deb.nodesource.com/setup_8.x | bash - && \
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ …Run Code Online (Sandbox Code Playgroud) 我是新来的Docker,我在写我的论文时遇到麻烦Dockerfile。事实是,我创建了一个jonas523要执行shell命令的用户。因此,我将其放入其中,Dockerfile当我进入新容器时,我发现该命令未与我创建的新用户一起使用。
我想我不明白的USER指令提供Docker:
USER jonas523
RUN \
echo "JAVA_HOME=/usr/java/jdk1.7.0_45/bin" >> /home/jonas523/.bash_profile \
&& echo "ANT_HOME=/opt/apache-ant-1.8.2/bin" >> /home/jonas523/.bash_profile \
&& echo "export JAVA_HOME" >> /home/jonas523/.bash_profile \
&& echo "export ANT_HOME" >> /home/jonas523/.bash_profile \
&& echo "PATH=$PATH:$HOME/bin:$JAVA_HOME:$ANT_HOME" >> /home/jonas523/.bash_profile \
&& echo "export PATH" >> /home/jonas523/.bash_profile
RUN source ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)
谁能告诉我有关USER指令的使用。RUN和CMD指令有什么区别?
谢谢。
我有一个docker-compose用于运行包括 Logstash 在内的多个容器的文件。我已经将挂载映射sincedb到片段中:
logstash:
build:
context: logstash/
volumes:
- ./tmp/logstash/sincedb:/usr/share/logstash/sincedb
Run Code Online (Sandbox Code Playgroud)
Logstash 容器有一些权限错误,特别是在访问 sincedb 时,如下面的错误片段所示:
Error: Permission denied - /usr/share/logstash/sincedb/sincedb
Exception: Errno::EACCES
Run Code Online (Sandbox Code Playgroud)
我尝试在容器 chmod 中执行,但出现以下错误:
bash-4.2$ chmod o+wx /usr/share/logstash/sincedb/
chmod: changing permissions of ‘/usr/share/logstash/sincedb/’: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
有没有办法克服这个权限问题?
我一直在使用ansible playbook来下载并在主机中启动tomcat.
这是我的库存主机文件:
[group1]
machine1 ansible_host=10.40.0.168
Run Code Online (Sandbox Code Playgroud)
我的group_vars中有group1.yml文件:
---
ansible_ssh_user: user
ansible_ssh_pass: pass
ansible_sudo_pass: passp
Run Code Online (Sandbox Code Playgroud)
我的剧本是:
---
- hosts: group1
sudo: yes
tasks:
- name: Update all packages to the latest version
apt:
upgrade: dist
- name: Download tomcat
get_url: url=http://mirrors.up.pt/pub/apache/tomcat/tomcat-9/v9.0.1/bin/apache-tomcat-9.0.1-fulldocs.tar.gz dest=/opt/apache-tomcat-9.0.1.tar.gz
- name: Unarchive a file that is already on the remote machine
unarchive:
src: /opt/apache-tomcat-9.0.1.tar.gz
dest: /opt/
remote_src: yes
- name: Run Tomcat
shell: ./startup.sh
args:
chdir: /opt/apache-tomcat-9.0.1/bin
Run Code Online (Sandbox Code Playgroud)
我尝试./startup.sh在/opt/apache-tomcat-9.0.1/bin文件夹中运行以启动tomcat.
我运行以下命令:
ansible-playbook playbookname.yml
Run Code Online (Sandbox Code Playgroud)
如果我./startup.sh在主机上运行它工作正常,但是当我从控制机器运行时,我得到: …
即使我已经设置了env var FOO也没有显示:
$ docker run -e FOO=foofoo ubuntubr echo $PATH
/bin:/usr/ucb:/usr/bin:/usr/sbin:/sbin:/usr/etc:/etc
$ docker run -e FOO=foofoo ubuntubr echo $FOO
$
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
但我能够修改路径:
docker run -e PATH=/nopath ubuntubr echo $PATH
docker: Error response from daemon: OCI runtime create failed: container_linux.go:296: starting container process caused "exec: \"echo\": executable file not found in $PATH": unknown.
ERRO[0000] error waiting for container: context canceled
Run Code Online (Sandbox Code Playgroud)
那为什么不是docker run -e FOO=foofoo ubuntubr echo $FOO不打印foofoo?
docker ×5
dockerfile ×3
javascript ×2
kubernetes ×2
.net ×1
alpine-linux ×1
ansible ×1
base64 ×1
core ×1
django ×1
logstash ×1
minikube ×1
nuxt.js ×1
python ×1
typescript ×1
unix ×1
vue.js ×1
vuejs2 ×1
vuex ×1
wget ×1
yarnpkg ×1