我想将自己放在kubernetes容器中并执行CURL命令。不幸的是,我在任何地方都找不到可以卷曲的工作图像(并且与kubernetes兼容)...
要执行到容器中,我正在做一个简单的 kubectl exec -it POD_ID /bin/bash
有人知道包含CURL二进制文件且不会在kubernetes中崩溃的最小docker镜像吗?
PS:这是出于测试目的,因此不需要坚如磐石或其他任何东西
谢谢
更新1这是我用来部署所有潜在映像的yaml:
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: blue
namespace: default
spec:
replicas: 1
template:
metadata:
labels:
name: blue
spec:
containers:
- name: blue-website
image: SOME_IMAGE:latest
resources:
requests:
cpu: 0.1
memory: 200
Run Code Online (Sandbox Code Playgroud)
我不认为它坏了,因为它适用于某些图像。
我想在本地运行一个 dockerized Flask 服务器并访问我在其中定义的任何路由。设置重现我的问题:
应用程序
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello World!'
Run Code Online (Sandbox Code Playgroud)
文件
from python:3.7-alpine
COPY app.py app.py
RUN pip install flask
CMD [ "flask", "run" ]
Run Code Online (Sandbox Code Playgroud)
构建这个容器工作正常。按照文档和一些深入的示例,运行它docker run -p 5000:5000 flask应该可以解决问题。它启动容器并且看起来不错:
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
Run Code Online (Sandbox Code Playgroud)
而docker ps让我发现,端口映射也似乎工作: …
我想在Linux容器中只安装Git,但由于“apt-get update”内容太多而浪费了大量时间。有什么有效的办法吗?
我在使用 SSH 连接到运行 Alpine Linux 3.10 的Docker 容器(从此图像中)时遇到问题。
此连接必须使用 SSH,因为我使用的备份软件barman需要通过 SSH 连接到在 Docker 容器内运行的 PostgreSQL 11 数据库。
首先我使用连接到 docker 容器
docker exec -it <container_name> /bin/bash
Run Code Online (Sandbox Code Playgroud)
然后尝试重新安装并启动sshd
bash-5.0# apk add openssh --no-cache
fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/community/x86_64/APKINDEX.tar.gz
OK: 117 MiB in 42 packages
bash-5.0# apk add openrc --no-cache
fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/community/x86_64/APKINDEX.tar.gz
OK: 117 MiB in 42 packages
bash-5.0# rc-update add sshd
* rc-update: sshd already installed in runlevel `sysinit'; skipping
bash-5.0# /etc/init.d/sshd start
* WARNING: sshd is …Run Code Online (Sandbox Code Playgroud) 我有一个 Azure Linux WebApp 使用 docker-compose 来运行三个容器:Asp.Net Core 3.1 WebApp、Nginx 作为反向代理和一个 Asp.Net Core WebJob (SKD 3) 来生成 PDF 报告。WebApp 位于https://pdf.ricardogaefke.com。
问题是:生成的 PDF 有一个带有在线检查链接的 QrCode,我在运行 WebJob 时遇到问题(“libgdiplus未找到),我尝试安装这个libgdiplus 包。这个问题与System.Drawing命名空间有关。
问题是该软件包处于边缘/测试版本中,无法使用apk add命令进行安装。我怎样才能安装这个包?
我正在尝试python:3-8.alpine使用 python 模块构建基于 的图像asyncpg。
这是我的 Dockerfile 的一部分:
FROM python:3.8-alpine
RUN apk add gcc
RUN apk add python3-dev
RUN pip3 install asyncpg
Run Code Online (Sandbox Code Playgroud)
我补充说gcc,python3-dev因为我认为我需要它们能够asyncpg根据文档进行构建:https : //magicstack.github.io/asyncpg/current/installation.html(但我不确定,我想我应该无需构建此模块即可安装)
但是在构建图像时出现以下错误:
gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -DTHREAD_STACK_SIZE=0x100000 -fPIC -I/usr/local/include/python3.8 -c asyncpg/pgproto/pgproto.c -o build/temp.linux-x86_64-3.8/asyncpg/pgproto/pgproto.o -O2 -fsigned-char -Wall -Wsign-compare -Wconversion
In file included from asyncpg/pgproto/pgproto.c:29:
/usr/local/include/python3.8/Python.h:11:10: fatal error: limits.h: No such file or directory
11 | #include <limits.h>
| ^~~~~~~~~~
compilation terminated.
error: …Run Code Online (Sandbox Code Playgroud) 我正在尝试Nginx使用apline:latest图像创建自己的图像,在修复了很多错误之后,多亏了互联网,我设法做到了并且一切正常,但是问题是当我运行以下命令时:
rc-service nginx status
* status: stopped
Run Code Online (Sandbox Code Playgroud)
当我尝试启动服务时,这就是它给我的内容,如下所示:
rc-service nginx start
* WARNING: nginx is already starting
Run Code Online (Sandbox Code Playgroud)
即使服务停止,第二个命令的输出告诉它已经启动?!
于是我打开了我的docker-machine的localhost来验证服务是开启还是关闭,成功出现nginx html页面。
我尝试运行rc-service nginx reload,结果如下:
rc-service nginx reload
/lib/rc/sh/openrc-run.sh: line 100: can't create /sys/fs/cgroup/blkio/tasks: Read-only file system
/lib/rc/sh/openrc-run.sh: line 100: can't create /sys/fs/cgroup/cpu/tasks: Read-only file system
/lib/rc/sh/openrc-run.sh: line 100: can't create /sys/fs/cgroup/cpuacct/tasks: Read-only file system
/lib/rc/sh/openrc-run.sh: line 100: can't create /sys/fs/cgroup/cpuset/tasks: Read-only file system
/lib/rc/sh/openrc-run.sh: line 100: can't create /sys/fs/cgroup/devices/tasks: Read-only file system
/lib/rc/sh/openrc-run.sh: line 100: …Run Code Online (Sandbox Code Playgroud) 我的目标是比较我的 golang 应用程序的两个 docker 解决方案:
我的 Dockerfile 非常简单,类似于:
FROM ubuntu:20.04
# FROM golang:alpine for alpine based images
# myApp binary is pre-built before running docker build
COPY bin/myApp app/myApp
COPY myApp-config.json app/myApp-config.json
CMD MYAPP_CONFIG=app/myApp-config.json ./app/myApp
Run Code Online (Sandbox Code Playgroud)
对于基于高山的图像,我在这里遇到了同样的问题,由于生成的图像中缺少 CGO 动态链接,因此 /app/myApp 无法启动。我通过在 go build 期间禁用 CGO 来解决这个问题:
CGO_ENABLED=0
Run Code Online (Sandbox Code Playgroud)
由于我对 docker 很陌生,所以我的问题是:
net/http似乎需要在运行时存在 CGO。谢谢!