您好,我使用 apk add 在 alpine 上安装了 jpeg lib,我正在尝试使用 npm 安装节点画布,但出现此错误,您能帮帮我吗?我使用 docker 运行一个 node:6.9.5-alpine 映像,并使用 apk 添加了 Ghostcript、cairo-dev、pango、giflib-dev、libjppeg 和 build-basse。
我正在使用 Node:12 基础映像构建 Docker 映像。由于图像尺寸较小,我尝试将其切换为使用 Node:12-alpine。我在 Alpine 中安装了 bash 和 Shadow 以便能够运行chmod命令。
我在使用其中一个 RUN 命令时遇到错误RUN chmod +755。错误信息:chmod: invalid mode '+755'
请注意,这适用于 Node:12 基础映像,所以我想我只需要在 Alpine linux 中安装另一个包?谢谢!
FROM node:12.8-alpine
# Create working directory
RUN mkdir -p /home/node/app
# Set working directory
WORKDIR /home/node/app
# Install bash and shadow for permissions chmod commands
RUN apk add --no-cache bash && apk add shadow
# Add `/home/node/app/node_modules/.bin` to $PATH
ENV PATH /home/node/app/node_modules/.bin:$PATH
# Copy code
COPY --chown=node . /home/node/app …Run Code Online (Sandbox Code Playgroud) 我正在遵循以下指南:https : //denibertovic.com/posts/handling-permissions-with-docker-volumes/ 在我的容器中设置 --volume 绑定安装并在来宾容器中创建一个用户作为我的主机用户的 UID - 理论是我的容器用户应该能够访问安装。它对我不起作用,我正在寻找一些指示以尝试下一步。
更多背景详情:
我的 Dockerfile 从一个 alpine 基地开始,并添加了 python 开发包。它按照来自 denibertovic 的指南在 entrypoint.sh 脚本中复制。然后跳转到 entrpoint.sh 脚本。
FROM alpine
RUN apk update
RUN apk add bash
RUN apk add python3
RUN apk add python3-dev
RUN apk add su-exec
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
RUN chmod +x /usr/local/bin/entrypoint.sh
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
Run Code Online (Sandbox Code Playgroud)
entrpoint.sh 脚本使用作为环境变量传入的 UID 将用户添加到容器中。
#!/bin/bash
# Add local user
# Either use the LOCAL_USER_ID if passed in at runtime or
# fallback
USER_ID=${LOCAL_USER_ID:-9001}
echo "Starting with …Run Code Online (Sandbox Code Playgroud) 在本页
https://hub.docker.com/r/adoptopenjdk/openjdk11/
我有以下 DockerFile 来像这样尝试 jdk 11 alpine 图像
FROM jre-11.0.6_10-alpine
Run Code Online (Sandbox Code Playgroud)
我运行 Docker 并收到此错误,您可以看到我的登录步骤成功..
Deans-MacBook-Pro:customerportal dean$ docker login
Authenticating with existing credentials...
WARNING! Your password will be stored unencrypted in /Users/dean/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
Deans-MacBook-Pro:customerportal dean$ docker build . --tag gcr.io/orderly-gcp/customerportal
Sending build context to Docker daemon 103.4MB
Step 1/1 : FROM jre-11.0.6_10-alpine
pull access denied for jre-11.0.6_10-alpine, repository does not exist or may require 'docker login': denied: requested access to …Run Code Online (Sandbox Code Playgroud) 我有这个 awk 命令:
echo www.host.com |awk -F. '{$1="";OFS="." ; print $0}' | sed 's/^.//'
Run Code Online (Sandbox Code Playgroud)
它的作用是从主机名中获取域:
host.com
Run Code Online (Sandbox Code Playgroud)
该命令适用于 CentOS 7 (awk v 4.0.2),但不适用于 ubuntu 19.04 (awk 4.2.1) 和 alpine (gawk 5.0.1),输出为:
host com
Run Code Online (Sandbox Code Playgroud)
我怎样才能修复那个 awk 表达式,让它在最近的 awk 版本中工作?
我正在围绕 Git 开发一个名为Elegant Git的包装器,并希望在多个 Git 版本上运行测试。由于该项目使用 Docker 容器进行测试,我准备了一个 Dockerfile,它从源代码安装 Git 并得到奇怪的结果:
apk add git~ 28Mb安装 Git 的 Apline 图像它反映了每个创建的二进制文件的大小
Build version:
18.6M /git/usr/libexec/git-core/git
apk version:
2.4M /usr/libexec/git-core/git
Run Code Online (Sandbox Code Playgroud)
在从源代码构建 Git 时,有没有办法减小二进制文件的大小?
以下Dockerfile重现了该行为:
ARG bashversion=3.2.57
FROM bash:${bashversion}
ARG gitversion=2.26.2
WORKDIR /git
RUN apk add --no-cache curl && \
curl --output git-${gitversion}.tar.gz \
https://mirrors.edge.kernel.org/pub/software/scm/git/git-${gitversion}.tar.gz && \
tar -xvzf git-${gitversion}.tar.gz && \
mkdir -p /git
RUN apk add …Run Code Online (Sandbox Code Playgroud) 我需要在基于 Alpine 的 docker 映像中安装 Sdkman,但存在默认 shell 不是 Bash 的问题。然后命令:
source "$HOME/.sdkman/bin/sdkman-init.sh"
Run Code Online (Sandbox Code Playgroud)
以失败告终:
/bin/sh: /root/.sdkman/bin/sdkman-init.sh: line 40: SDKMAN_PLATFORM+=64: not found
Run Code Online (Sandbox Code Playgroud) 以下Dockerfile适用于 Ubuntu:
FROM ubuntu:20.04
SHELL ["/bin/bash", "-c"]
ARG user=hakond
ARG home=/home/$user
RUN useradd --create-home -s /bin/bash $user \
&& echo $user:ubuntu | chpasswd \
&& adduser $user sudo
WORKDIR $home
USER $user
COPY --chown=$user entrypoint.sh .
RUN chmod +x entrypoint.sh
ENTRYPOINT ["./entrypoint.sh"]
Run Code Online (Sandbox Code Playgroud)
这里entrypoint.sh是
#! /bin/bash
exec bash
Run Code Online (Sandbox Code Playgroud)
我如何在阿尔卑斯山做同样的事情?我试过:
FROM alpine:3.12
SHELL ["/bin/sh", "-c"]
RUN apk add --no-cache bash
ARG user=hakond
ARG home=/home/$user
RUN addgroup -S docker
RUN adduser \
--disabled-password \
--gecos "" \
--home $home …Run Code Online (Sandbox Code Playgroud) python:3.10.0rc2-buster当我使用或没有任何问题构建我的 docker 映像时,我的 Django 应用程序运行得很好python:3.10.0rc2-slim-buster。
为了减小图像大小,我切换到python:3.10-rc-alpine,但是,我面临着数十个缺失的依赖项。
我发现这篇文章非常有帮助Docker Alpine Linux python (missing)它使我能够解决一些缺失的依赖项。
感谢您的支持,指导我如何解决这个问题?
这些是我收到的缺少依赖项错误:
#6 9.141 ERROR: unable to select packages:
#6 9.173 libcairo2 (no such package):
#6 9.173 required by: world[libcairo2]
#6 9.173 libgdk-pixbuf2.0-0 (no such package):
#6 9.173 required by: world[libgdk-pixbuf2.0-0]
#6 9.173 libldap2-dev (no such package):
#6 9.173 required by: world[libldap2-dev]
#6 9.173 libpango-1.0-0 (no such package):
#6 9.173 required by: world[libpango-1.0-0]
#6 9.173 libpangocairo-1.0-0 (no such package):
#6 9.173 required …Run Code Online (Sandbox Code Playgroud) 本页介绍如何使用“python:buster”创建与 Lambda 一起使用的 Docker 映像
https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-create-from-alt
我想对“python:alpine”做同样的事情
但在尝试安装“libcurl4-openssl-dev”时遇到问题
有人成功构建了用于 lambda 的“python:alpine”图像吗?
alpine-linux ×10
docker ×8
dockerfile ×2
adoptopenjdk ×1
awk ×1
aws-lambda ×1
bash ×1
canvas ×1
centos7 ×1
django ×1
git ×1
python ×1
sdkman ×1
ubuntu ×1