标签: alpine-linux

需要在Kubernetes Pod中使用CURL二进制文件

我想将自己放在kubernetes容器中并执行CURL命令。不幸的是,我在任何地方都找不到可以卷曲的工作图像(并且与kubernetes兼容)...

  1. 我用Alpine和CURL尝试了一些docker镜像,但是每次以crashLoopBackOff结尾。我想这意味着容器已退出,因为docker映像在执行自身后退出了...
  2. 我也尝试过单独使用alpine和ubuntu的图像,但是每次都以crashloopBackOff结尾。
  3. 我设法在一些图像中执行,但从未安装CURL,APT-GET或APK均未运行。

要执行到容器中,我正在做一个简单的 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)

我不认为它坏了,因为它适用于某些图像。

curl docker kubernetes alpine-linux

0
推荐指数
3
解决办法
2198
查看次数

如何将烧瓶端口从容器发布到主机

我想在本地运行一个 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让我发现,端口映射也似乎工作: …

python flask docker alpine-linux

0
推荐指数
1
解决办法
2495
查看次数

如何仅在 Docker 上下载 Git?

我想在Linux容器中只安装Git,但由于“apt-get update”内容太多而浪费了大量时间。有什么有效的办法吗?

linux git docker alpine-linux

0
推荐指数
1
解决办法
8304
查看次数

无法通过 SSH 连接到运行 Alpine Linux 3.10 的 Docker 容器

我在使用 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)

linux ssh openssh docker alpine-linux

0
推荐指数
1
解决办法
6885
查看次数

如何向 Alpine Linux 添加边缘/测试包?

我有一个 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命令进行安装。我怎样才能安装这个包?

docker azure-webjobs .net-core alpine-linux

0
推荐指数
1
解决办法
2356
查看次数

在 alpine docker 镜像中使用 asyncpg python 模块

我正在尝试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)

我补充说gccpython3-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)

python docker alpine-linux asyncpg

0
推荐指数
1
解决办法
598
查看次数

如何在 alpine:latest image 中使用 rc-service 命令启动 Nginx 服务器

我正在尝试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)

service nginx docker dockerfile alpine-linux

0
推荐指数
2
解决办法
2024
查看次数

禁用 cgo 来让 golang:alpine 工作有什么风险吗?

我的目标是比较我的 golang 应用程序的两个 docker 解决方案:

  1. 使用 ubuntu 作为基础镜像
  2. 使用 golang:alpine 作为基础镜像

我的 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 很陌生,所以我的问题是:

  1. 禁用 CGO 是否有任何风险?我的理解是go build会回退到CGO的原生go实现,但我不知道它是否有什么隐藏的陷阱。我的应用程序确实具有关键依赖性,net/http似乎需要在运行时存在 CGO。
  2. 似乎 alpine 镜像是 golang 使用的事实上的基础镜像,处理这个 CGO 问题的标准方法是什么?

谢谢!

go cgo docker alpine-linux

0
推荐指数
1
解决办法
1482
查看次数