我正在尝试在基于python:alpine的Docker容器中运行Python的Scrapy .它以前工作过,但现在我想使用Scrapy的Image Pipeline,它需要我安装Pillow.
作为简化示例,我尝试了以下方法Dockerfile:
FROM python:alpine
RUN apk --update add libxml2-dev libxslt-dev libffi-dev gcc musl-dev libgcc openssl-dev curl
RUN apk add libjpeg zlib tiff freetype lcms libwebp tcl openjpeg
RUN pip install Pillow
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试构建它时,我得到一个错误,其中包含以下内容:
Traceback (most recent call last):
File "/tmp/pip-build-ft5yzzuv/Pillow/setup.py", line 744, in <module>
zip_safe=not debug_build(), )
File "/usr/local/lib/python3.6/distutils/core.py", line 148, in setup
dist.run_commands()
File "/usr/local/lib/python3.6/distutils/dist.py", line 955, in run_commands
self.run_command(cmd)
File "/usr/local/lib/python3.6/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/usr/local/lib/python3.6/site-packages/setuptools/command/install.py", line 61, in …Run Code Online (Sandbox Code Playgroud) 在一个新的Alpine Linux中我安装了GCC
apk add --update-cache gcc
Run Code Online (Sandbox Code Playgroud)
但仍然是一个简单的程序
#include <stdio.h>
int main(int argc, char *argv[]) {
return 0;
}
Run Code Online (Sandbox Code Playgroud)
用消息编译
fatal error: stdio.h: No such file or directory
Run Code Online (Sandbox Code Playgroud) 如何编写Dockerfile命令以在alpine docker镜像中安装以下命令:
如何/etc/profile以交互方式启动Alpine Docker容器时自动运行?我已经在aliases.sh文件中添加了一些别名并将其放入/etc/profile.d,但是当我使用启动容器时docker run -it [my_container] sh,我的别名不活动.我. /etc/profile每次都必须从命令行手动输入.
是否需要一些其他配置/etc/profile才能在登录时运行?我在使用~/.profile文件时也遇到了问题.任何见解都表示赞赏!
编辑:
根据VonC的回答,我拉动并运行了他的示例ruby容器.这是我得到的:
$ docker run --rm --name ruby -it codeclimate/alpine-ruby:b42
/ # more /etc/profile.d/rubygems.sh
export PATH=$PATH:/usr/lib/ruby/gems/2.0.0/bin
/ # env
no_proxy=*.local, 169.254/16
HOSTNAME=6c7e93ebc5a1
SHLVL=1
HOME=/root
TERM=xterm
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
/ # exit
Run Code Online (Sandbox Code Playgroud)
虽然该/etc/profile.d/rubygems.sh文件存在,但是当我登录并且我的PATH环境变量没有被更新时它没有被运行.我使用了错误的docker run命令吗?还缺少什么?有没有人得到~/.profile或/etc/profile.d/文件与Docker上的Alpine一起工作?谢谢!
我正在尝试在基于Alpine 3.1的docker容器中安装numpy.我正在使用以下Dockerfile:
FROM alpine:3.1
RUN apk add --update make cmake gcc g++ gfortran
RUN apk add --update python py-pip python-dev
RUN pip install cython
RUN pip install numpy
Run Code Online (Sandbox Code Playgroud)
这运行正常,直到pip install numpy我收到以下错误:
error: Command "gcc -fno-strict-aliasing -Os -fomit-frame-pointer -DNDEBUG -Os -fomit-frame-pointer -fPIC -Inumpy/core/include -Ibuild/src.linux-x86_64-2.7/numpy/core/include/numpy -Inumpy/core/src/private -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -I/usr/include/python2.7 -Ibuild/src.linux-x86_64-2.7/numpy/core/src/private -Ibuild/src.linux-x86_64-2.7/numpy/core/src/private -Ibuild/src.linux-x86_64-2.7/numpy/core/src/private -c build/src.linux-x86_64-2.7/numpy/core/src/npymath/ieee754.c -o build/temp.linux-x86_64-2.7/build/src.linux-x86_64-2.7/numpy/core/src/npymath/ieee754.o" failed with exit status 1
Run Code Online (Sandbox Code Playgroud)
easy_install-2.7 numpy 给出了同样的错误.
我缺少任何配置/安装步骤吗?
我有一个node:alpineDocker 镜像。当我以 root 用户身份运行图像时,我没有问题,但是当我使用另一个用户并尝试这样做时,npm install我从包提取中收到了很多错误:
npm WARN tar EPERM: operation not permitted, futime
Run Code Online (Sandbox Code Playgroud)
在收到 5000 条警告消息后,我在 npm 安装日志中看到了这一点:
npm timing action:extract Completed in 276816ms
npm timing action:finalize Completed in 172ms
Run Code Online (Sandbox Code Playgroud)
没有更多,npm 安装过程完全挂起。
任何人都知道这个错误并知道如何避免它?
我试图使用Docker compose文件在我的alpine中安装python pip但是得到以下错误.
ERROR: unsatisfiable constraints:
py-pip (missing):
required by: world[py-pip]
ERROR: Service 'web' failed to build: The command '/bin/sh -c apk add py-pip' returned a non-zero code: 1
Run Code Online (Sandbox Code Playgroud) 我有一个真的很难试图安装在一个稳定的数据包的科学配置docker.使用这种主流的相关工具应该会更容易.
以下是曾经工作的Dockerfile,有点破解,从包核心中删除并单独安装,指定,因为据称,更高版本与之冲突.pandaspandas<0.21.0numpy
FROM alpine:3.6
ENV PACKAGES="\
dumb-init \
musl \
libc6-compat \
linux-headers \
build-base \
bash \
git \
ca-certificates \
freetype \
libgfortran \
libgcc \
libstdc++ \
openblas \
tcl \
tk \
libssl1.0 \
"
ENV PYTHON_PACKAGES="\
numpy \
matplotlib \
scipy \
scikit-learn \
nltk \
"
RUN apk add --no-cache --virtual build-dependencies python3 \
&& apk add --virtual build-runtime \
build-base python3-dev openblas-dev …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 docker 容器中运行 typescript express.js。运行docker后,我收到以下错误:
> ts-node-dev src/app.ts
Using ts-node version 8.10.1, typescript version 3.9.2
TypeError [ERR_FEATURE_UNAVAILABLE_ON_PLATFORM]: The feature watch recursively is unavailable on the current platform, which is being used to run Node.js
at Object.watch (fs.js:1441:11)
at add (/app/node_modules/filewatcher/index.js:74:34)
at /app/node_modules/filewatcher/index.js:93:5
at FSReqCallback.oncomplete (fs.js:176:5)
Run Code Online (Sandbox Code Playgroud)
我的 Dockerfile:
FROM node:alpine
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
CMD ["npm","start"]
Run Code Online (Sandbox Code Playgroud)
和 package.json 文件:
{
"name": "app-name",
"version": "1.0.0",
"description": "Init master",
"main": "src/app.ts",
"scripts": {
"build": "./node_modules/.bin/tsc",
"start": …Run Code Online (Sandbox Code Playgroud) 我在使用基于 Python 的 Dockerfile 构建 Docker 映像时遇到问题。我正在尝试使用 mysqlclient 库(版本 2.2.0)和 Django(版本 4.2.2)。这是我的 Dockerfile:
FROM python:3.11-alpine
WORKDIR /usr/src/app
COPY requirements.txt .
RUN apk add --no-cache gcc musl-dev mariadb-connector-c-dev && \
pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
Run Code Online (Sandbox Code Playgroud)
当 Docker 构建过程到达安装 mysqlclient 包时就会出现问题。我收到以下错误:异常:找不到有效的 pkg-config 名称 为了解决此问题,我尝试将 pkgconfig 添加到 apk add 命令,不幸的是,这没有帮助,并且仍然存在相同的错误。
如果您能提供有关如何解决此问题的指导,我将不胜感激。
先感谢您。
alpine-linux ×10
docker ×9
dockerfile ×4
python ×4
node.js ×2
numpy ×2
ash ×1
dependencies ×1
gcc ×1
linux ×1
pandas ×1
pillow ×1
pip ×1
sh ×1
typescript ×1