我正在为 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 …
我有一个简单的 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此图像时它会自动运行一个简单的 …
我已经构建了 Flask 应用程序,旨在在 docker 容器内运行。如果标头密钥与我放入docker-composeenvironment中的密钥匹配,它将接受 POST HTTP 方法并返回适当的 JSON 响应。
...
environment:
- SECRET_KEY=fakekey123
...
Run Code Online (Sandbox Code Playgroud)
问题是:当涉及到测试时。Flask (pytest)的app或client固定装置当然找不到 docker-compose environment。因为应用程序不是从 docker-compose 启动的,而是从 pytest 启动的。
...
environment:
- SECRET_KEY=fakekey123
...
Run Code Online (Sandbox Code Playgroud)
解决这个问题的(最佳/推荐)方法是什么?
我找到了一些插件 一、 二、 三来做到这一点。但我在这里问是否有更“简单”/“通用”的方法。因为我还想使用 CI/CD 工具自动执行此测试。
我正在AWS lambda 上使用Pychromeless 存储库并取得成功。
\n\n现在我需要使用 NaCL 依赖项来解密字符串,但我得到了
\n\nUnable to import module \'lambda_function\': /var/task/lib/nacl/_sodium.abi3.so
与补充
\n\ninvalid ELF header\n\xc2\xa0
在 AWS Lambda 上运行该函数时。
\n\n我知道这是一个与 AWS Lambda 环境相关的特定问题,因为我可以在 Mac 上的 docker 中运行该函数。
\n\n这是我的requirements.txt 文件
\n\nboto3==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\nRun Code Online (Sandbox Code Playgroud)\n\n这是 dockerfile
\n\nFROM 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\nRun Code Online (Sandbox Code Playgroud)\n\n和生成文件:
\n\nclean:\n rm -rf build build.zip\n rm -rf __pycache__\n\nfetch-dependencies:\n mkdir …Run Code Online (Sandbox Code Playgroud) 我有一个集群,目前有 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) 我在我的机器内安装了gettyimages/spark dockerimage 和。jupyter/pyspark-notebook
但是由于gettyimage/sparkpython 版本为 ,3.5.3而jupyter/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笔记本电脑连接到狗舍呢?
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) 我想运行 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) 我正在尝试在我的 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) docker ×9
python ×6
dockerfile ×2
anaconda ×1
apparition ×1
aws-lambda ×1
capybara ×1
docker-swarm ×1
flask ×1
kubernetes ×1
miniconda ×1
minikube ×1
pip ×1
pyspark ×1
pytest ×1
python-3.x ×1
ruby ×1