小编Lin*_*nPy的帖子

standard_init_linux.go:211: exec 用户进程导致“exec 格式错误”

我正在为 python 脚本构建 Dockerfile,它将在 minikube windows 10 系统中运行,下面是我的 Dockerfile

使用以下命令构建 docker docker build -t python-helloworld .

并将其加载到 minikube docker Demon 中 docker save python-helloworld | (eval $(minikube docker-env) && docker load)

Docker 文件

FROM python:3.7-alpine
#add user group and ass user to that group
RUN addgroup -S appgroup && adduser -S appuser -G appgroup

#creates work dir   
WORKDIR /app

#copy python script to the container folder app
COPY helloworld.py /app/helloworld.py

#user is appuser
USER appuser

ENTRYPOINT  ["python", "/app/helloworld.py"]
Run Code Online (Sandbox Code Playgroud)

pythoncronjob.yml 文件(cron …

python docker kubernetes dockerfile minikube

69
推荐指数
7
解决办法
12万
查看次数

如何在 Dockerfile 中使用 miniconda 安装软件包?

我有一个简单的 Dockerfile:

FROM ubuntu:18.04

RUN apt-get update

RUN apt-get install -y wget && rm -rf /var/lib/apt/lists/*

RUN wget \
    https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh \
    && mkdir /root/.conda \
    && bash Miniconda3-latest-Linux-x86_64.sh -b \
    && rm -f Miniconda3-latest-Linux-x86_64.sh \
    && echo PATH="/root/miniconda3/bin":$PATH >> .bashrc \
    && exec bash \
    && conda --version

RUN conda --version
Run Code Online (Sandbox Code Playgroud)

它不能被建造。在最后一步,我得到了/bin/sh: 1: conda: not found......
第一次出现conda --version没有引发错误,这让我想知道这是一个PATH问题吗?
我想RUN在这个 Dockerfile 中有另一个条目,我将在其中安装包conda install ...
最后我想要CMD ["bash", "test.py"]条目,以便在执行docker run此图像时它会自动运行一个简单的 …

python docker anaconda miniconda dockerfile

22
推荐指数
1
解决办法
2万
查看次数

如何使用 Pytest 测试 dockerized Flask 应用程序?

我已经构建了 Flask 应用程序,旨在在 docker 容器内运行。如果标头密钥与我放入docker-composeenvironment中的密钥匹配,它将接受 POST HTTP 方法并返回适当的 JSON 响应。

...
    environment:
      - SECRET_KEY=fakekey123
...
Run Code Online (Sandbox Code Playgroud)

问题是:当涉及到测试时。Flask (pytest)的appclient固定装置当然找不到 docker-compose environment。因为应用程序不是从 docker-compose 启动的,而是从 pytest 启动的。

...
    environment:
      - SECRET_KEY=fakekey123
...
Run Code Online (Sandbox Code Playgroud)

解决这个问题的(最佳/推荐)方法是什么?

我找到了一些插件 来做到这一点。但我在这里问是否有更“简单”/“通用”的方法。因为我还想使用 CI/CD 工具自动执行此测试。

python pytest flask docker

6
推荐指数
2
解决办法
4353
查看次数

如何让 NaCL 在 AWS Lambda 正常工作?

我正在AWS lambda 上使用Pychromeless 存储库并取得成功。

\n\n

现在我需要使用 NaCL 依赖项来解密字符串,但我得到了

\n\n

Unable to import module \'lambda_function\': /var/task/lib/nacl/_sodium.abi3.so

\n\n

与补充

\n\n

invalid ELF header\n\xc2\xa0

\n\n

在 AWS Lambda 上运行该函数时。

\n\n

我知道这是一个与 AWS Lambda 环境相关的特定问题,因为我可以在 Mac 上的 docker 中运行该函数。

\n\n

这是我的requirements.txt 文件

\n\n
boto3==1.6.18\nbotocore==1.9.18\nselenium==2.53.6\nchromedriver-install==1.0.3\nbeautifulsoup4==4.6.1\ncertifi==2018.11.29\nchardet==3.0.4\neditdistance==0.5.3\nfuture==0.17.1\nidna==2.7\npython-telegram-bot==10.1.0\nrequests==2.19.1\nsoupsieve==1.7.3\nurllib3==1.23\nPyNaCl==1.3.0\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是 dockerfile

\n\n
FROM lambci/lambda:python3.6\nMAINTAINER tech@21buttons.com\n\nUSER root\n\nENV APP_DIR /var/task\n\nWORKDIR $APP_DIR\n\nCOPY requirements.txt .\nCOPY bin ./bin\nCOPY lib ./lib\n\nRUN mkdir -p $APP_DIR/lib\nRUN pip3 install -r requirements.txt -t /var/task/lib\n
Run Code Online (Sandbox Code Playgroud)\n\n

和生成文件:

\n\n
clean:\n    rm -rf build build.zip\n    rm -rf __pycache__\n\nfetch-dependencies:\n    mkdir …
Run Code Online (Sandbox Code Playgroud)

python python-3.x docker nacl-cryptography aws-lambda

5
推荐指数
1
解决办法
2410
查看次数

当堆栈上的数量小于限制 256 时,为什么会发生 docker IP 耗尽的情况?

我有一个集群,目前有 135 个容器在 my-stack 堆栈上运行,这已经从 156 个下降了,因为 IP 耗尽问题不断出现,但由于子网配置为 /24,理论上它应该有 100 个可用 IP使用。在所有 docker 节点上执行 docker system prune --all 并没有带回任何可用的 IP 来使用。

在一个实例中,其中一个 docker 节点由于内存问题而停机,并且由于 IP 耗尽,某些服务的容器无法恢复在线状态。该节点必须从 swarm 中删除,并且我必须删除 /var/lib/docker/swarm 的内容才能将该节点重新加入到 swarm 中。在我完成此应用程序后,可以将 IP 分配给该节点。

IP 分配如何与 docker 堆栈配合使用?有没有办法检查分配给容器的 IP 以及距离发生 IP 耗尽还有多远?当我将节点添加回群后,我没想到它会解决 IP 耗尽问题。

码头工人版本:

Client:
 Version:      18.03.1-ce
 API version:  1.37
 Go version:   go1.9.5
 Git commit:   9ee9f40
 Built:        Thu Apr 26 07:17:20 2018
 OS/Arch:      linux/amd64
 Experimental: false
 Orchestrator: swarm

Server:
 Engine:
  Version:      18.03.1-ce
  API version:  1.37 (minimum version 1.12) …
Run Code Online (Sandbox Code Playgroud)

docker docker-swarm

5
推荐指数
1
解决办法
2913
查看次数

如何在docker容器中安装不同的python版本

我在我的机器内安装了gettyimages/spark dockerimage 和。jupyter/pyspark-notebook

但是由于gettyimage/sparkpython 版本为 ,3.5.3jupyter/pyspark-notebookpython 版本为3.7,会出现以下错误:

例外:worker 中的 Python 版本 3.5 与驱动程序 3.7 中的版本不同,PySpark 无法使用不同的次要版本运行。请检查环境变量 PYSPARK_PYTHON 和 PYSPARK_DRIVER_PYTHON 是否设置正确。

因此,我尝试升级gettyimage/spark镜像的 python 版本或降级 docker 镜像的 python 版本jupyter/pyspark-notebook来修复它。

  • 先说方法一,jupyter/pyspark-notebook先降级python版本:

我用来conda install python=3.5降级docker镜像的python版本 jupyter/pyspark-notebook。然而,在我这样做之后,我的jupyter笔记本无法连接到任何单机ipynb,并且内核似乎已死。另外,当我conda再次输入时,它显示了我conda command not found,但是 python 终端运行良好

我比较了降级之前和之后的 sys.path

['','/usr/local/spark/python','/usr/local/spark/python/lib/py4j-0.10.7-src.zip','/opt/conda/lib/python35.zip' , '/opt/conda/lib/python3.5', '/opt/conda/lib/python3.5/plat-linux', '/opt/conda/lib/python3.5/lib-dynload', '/ opt/conda/lib/python3.5/site-packages']

['','/usr/local/spark/python','/usr/local/spark/python/lib/py4j-0.10.7-src.zip','/opt/conda/lib/python37.zip' ,'/opt/conda/lib/python3.7','/opt/conda/lib/python3.7/lib-dynload','/opt/conda/lib/python3.7/site-packages']

我认为或多或少是正确的。那么为什么我无法使用我的jupyter笔记本电脑连接到狗舍呢?

  • 所以我使用另一种方法,我尝试升级 …

python docker pyspark

4
推荐指数
1
解决办法
2万
查看次数

在 pip 中为烧瓶应用程序构建 docker 图像失败

from alpine:latest
RUN apk add --no-cache python3-dev \
    && pip3 install --upgrade pip

WORKDIR /backend
COPY . /backend

RUN pip --no-cache-dir install -r requirements.txt
EXPOSE 5000
ENTRYPOINT ['python3']
CMD ['app.py']
Run Code Online (Sandbox Code Playgroud)

我有一个类似上面的简单 Dockerfile。

当我这样做时docker build -t backend:latest .,它给了我

ERROR: Command errored out with exit status 1: /usr/bin/python3.7 /usr/lib/python3.7/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-wr55ljb4/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- 'setuptools>=40.8.0' wheel 'cffi>=1.1; python_implementation != '"'"'PyPy'"'"'' Check the logs for full command output.
The command '/bin/sh -c pip …
Run Code Online (Sandbox Code Playgroud)

python pip docker

4
推荐指数
1
解决办法
4145
查看次数

如何使用 docker compose 运行同一服务的多个实例?

我想运行 3 个在某个端口上运行的 docker 镜像实例。我希望所有 3 个实例的端口都暴露给主机。我希望能够控制哪个主机端口映射到容器。

首先,我尝试在 docker-compose.yml 中创建 3 个不同的服务。这有效但不是可取的。

其次,我在 docker-compose.yml 中创建了一个服务,然后我尝试通过环境变量控制暴露的端口。但是当我创建第二个容器时,docker 删除了我创建的第一个容器。

我无法使用该scale选项,因为它将暴露的端口映射到主机上的随机端口。

myservice:
    image: myimage:latest
    container_name: service-${PORT}
    volumes:
      - ${DIR}:/data
    ports:
      - "${PORT:-8011}:8011"
      - "${ADMINPORT:-8012}:8012"
Run Code Online (Sandbox Code Playgroud)

docker docker-compose

3
推荐指数
1
解决办法
2367
查看次数

需要使用 CI 在 Docker 中运行幻影吗?

我正在尝试在我的 CI 的 docker 中使用水豚和幻影运行 rspec 测试。我已经安装了 google-chrome-stable,但收到了疯狂的错误。

如果我只是运行我的 rspec,它将启动 puma 来执行测试,然后只需 10 分钟以上。

疯狂的是,如果我添加 rspec 过滤器或排除模式,我的所有测试规范都会失败并出现以下错误。

我正在使用最新版本的所有东西(rspec-rails、capybara、apparition)运行 rails 6.0.0rc2

如果我在 CI 上运行测试而没有使用幻影进行完整测试,一切正常。

我用谷歌搜索Could not load native IDN implementation.并试图清除我的 CI 工作人员的缓存,但它没有帮助。

我用这个 docker 文件构建我的图像

FROM ruby:2.6-stretch

ENV LANG C.UTF-8

ARG PG_MAJOR=11
ARG NODE_MAJOR=10
ARG BUNDLER_VERSION=2.0.2
ARG YARN_VERSION=1.17.3

# Add PostgreSQL to sources list
RUN curl -sSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \
  && echo 'deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list

# Add NodeJS to sources list
RUN …
Run Code Online (Sandbox Code Playgroud)

ruby capybara docker apparition

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