尝试从官方php:7.1-fpm-alpine镜像构建,在我的 Dockerfile 中使用以下摘录:
FROM php:7.1-fpm-alpine
RUN set -ex \
apk add --no-cache --virtual .build-deps \
freetype-dev \
libjpeg-turbo-dev \
libpng-dev \
\
&& docker-php-ext-configure gd \
--with-freetype-dir=/usr \
--with-png-dir=/usr \
--with-jpeg-dir=/usr \
&& docker-php-ext-install gd \
&& apk del .build-deps
Run Code Online (Sandbox Code Playgroud)
尝试使用 构建它时docker build,GD 失败./configure并出现以下错误:
configure: error: jpeglib.h not found
Run Code Online (Sandbox Code Playgroud)
我可以确认它jpeglib.h存在并且正是我认为它应该在的地方(实际上,它在 Debian 变体中的确切位置):
$ docker run -it --rm php:7.1-fpm-alpine /bin/sh
>$ apk add --no-cache libjpeg-turbo-dev \
&& find /usr -type f …Run Code Online (Sandbox Code Playgroud) 我正在尝试以Alpine Docker映像中的不同用户身份运行一些脚本。在登录时,devuser我希望setup.sh以root和app.sh身份运行appuser。由于我已经读到不能在脚本文件上使用SUID,所以我有几个C程序,setup和app,它们会调用脚本。我可以setup按,root但不能app按appuser。
这是目录的内容。请注意,应用程序和设置在程序上设置了SUID位。我尝试在脚本上设置SUID,但这没有用。
/opt/app $ ls -l
total 24552
-r-sr-xr-x 1 appuser appgroup 10632 Jun 27 12:59 app
-r-------- 1 appuser appgroup 25101769 Jun 27 12:59 app.jar
-r-xr-xr-- 1 appuser appgroup 327 Jun 27 12:59 app.sh
-r-------- 1 appuser appgroup 316 Jun 27 12:59 application.yml
-r-sr-xr-x 1 root root 10632 Jun 27 12:59 setup
-r-xr-xr-- 1 root root …Run Code Online (Sandbox Code Playgroud) 我正在尝试在docker中创建一个多阶段构建,它只是运行一个非root crontab,它可以从容器外部访问卷.我有两个权限问题,有卷外部访问和cron:
dockerfile中的第一个构建创建一个非root用户映像,entry-point并且su-exec可以用卷修复权限!
同一个dockerfile中的第二个构建使用第一个映像来运行crond进程,该进程通常写入/ backup文件夹.
docker-compose.yml用于构建dockerfile 的文件:
version: '3.4'
services:
scrap_service:
build: .
container_name: "flight_scrap"
volumes:
- /home/rey/Volumes/mongo/backup:/backup
Run Code Online (Sandbox Code Playgroud)
在DockerFile(1)的第一步中,我尝试将denis bertovic给出的答案改编为Alpine图像
############################################################
# STAGE 1
############################################################
# Create first stage image
FROM gliderlabs/alpine:edge as baseStage
RUN echo http://nl.alpinelinux.org/alpine/edge/testing >> /etc/apk/repositories
RUN apk add --update && apk add -f gnupg ca-certificates curl dpkg su-exec shadow
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
# ADD NON ROOT USER, i hard fix value to 1000, my current id
RUN …Run Code Online (Sandbox Code Playgroud) 我正在尝试从 Alpine linux docker 容器中运行自定义节点命令。
安装的软件包:
alpine-baselayout
alpine-keys
libressl2.4-libcrypto
libressl2.4-libssl
apk-tools
scanelf
libc-utils
glibc
libgcc
glibc-bin
libbz2
expat
libffi
gdbm
xz-libs
ncurses-terminfo-base
ncurses-terminfo
ncurses-libs
readline
sqlite-libs
musl
zlib
libpng
freetype
pkgconf
zlib-dev
libpng-dev
freetype-dev
libstdc++
binutils-libs
binutils
gmp
isl
libgomp
libatomic
mpfr3
mpc1
gcc
musl-dev
libc-dev
g++
ca-certificates
libssh2
libcurl
pcre
git
libjpeg-turbo
libjpeg-turbo-dev
tiff
tiff-dev
lcms2
lcms2-dev
musl-utils
libffi-dev
libressl
libressl2.4-libtls
libressl-dev
make
db
libsasl
libldap
libpq
postgresql-libs
postgresql-dev
python2
py-setuptools
python3
python3-dev
libxau
libbsd
libxdmcp
libxcb
libx11
gifsicle …Run Code Online (Sandbox Code Playgroud) 我想构建一个 Go 1.9.2 二进制文件并在 Docker Alpine 映像上运行它。我写的 Go 代码没有调用任何 C 代码。它还使用net包。不幸的是,它并不像听起来那么简单,因为 Go 似乎并不是一直都在构建静态二进制文件。当我尝试执行二进制文件时,我经常收到关于为什么二进制文件没有执行的神秘消息。互联网上有很多关于此的信息,但大多数信息最终都是人们使用试验错误来使他们的二进制文件工作。
到目前为止,我发现了以下作品,但是我不知道为什么,如果它是最佳的,或者是否可以简化。
env GOOS=linux GARCH=amd64 go install -v -a -tags netgo -installsuffix netgo -ldflags "-linkmode external -extldflags -static"
Run Code Online (Sandbox Code Playgroud)
构建将在 Alpine 3.7 docker 映像上运行的 Go 二进制文件的规范方法(如果存在)是什么?apk如果这会让事情变得更高效/更容易,我很乐意用来将软件包安装到 Alpine 映像。(相信我ca-certificates无论如何都需要安装。)
我可以使用CentOS映像设置语言环境
FROM centos
ENV LANG en_US.UTF-8
ENV LC_ALL en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)
但这似乎不适用于Alpine图片。如何设置Alpine图片的语言环境?
我已经编译了一个 PostgreSQL 插件wal2json,但是当尝试在 PostgreSQL 中加载它时,它抱怨:
错误:无法加载库“/usr/local/lib/postgresql/wal2json.so”:重新定位/usr/local/lib/postgresql/wal2json.so 时出错:__snprintf_chk:找不到符号
我找到了__snprintf_chk 的这个文档。
它在哪里,我应该怎么做才能将它提供给插件?
我的猜测是它在某个核心库中,但不存在于我拥有的版本中。也许我可以静态链接它?
更新:我想通了,这是使用Linux的阿尔卑斯山的问题musl,而不是glibc。我已经安装了 Alpine 软件包glibc,如https://github.com/jeanblanchard/docker-alpine-glibc/blob/master/Dockerfile 中所做的那样。没有帮助,仍然是同样的错误。
linux postgresql shared-libraries postgresql-9.4 alpine-linux
我必须在Docker容器上安装一些依赖项,我想使用python:3.6-alpine版本以使其尽可能轻巧,但是alpine附带的apk软件包管理器给我带来了麻烦,所以我想获得apt -获取包管理器。我试过了:
apk add apt-get
Run Code Online (Sandbox Code Playgroud)
它没有工作。
如何将其放在容器上?
上下文: 操作系统:Windows 10 Pro;Docker 版本:18.09.0(构建 4d60db4);在企业代理的背后,使用CNTLM来解决这个问题。(目前正在拉/运行图像工作正常)
问题: 我试图构建以下 Dockerfile:
FROM alpine:3.5
RUN apk add --update \
python3
RUN pip3 install bottle
EXPOSE 8000
COPY main.py /main.py
CMD python3 /main.py
Run Code Online (Sandbox Code Playgroud)
这是我得到的:
Sending build context to Docker daemon 11.26kB
Step 1/6 : FROM alpine:3.5
---> dc496f71dbb5
Step 2/6 : RUN apk add --update python3
---> Running in 7f5099b20192
fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.5/main: could not connect to server (check repositories file)
WARNING: Ignoring APKINDEX.c51f8f92.tar.gz: No such file or directory
fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/community/x86_64/APKINDEX.tar.gz …Run Code Online (Sandbox Code Playgroud) 摘自Spring Microservices in Action一书:我正在尝试使用Docker Maven插件来构建Docker映像,以将Java微服务作为Docker容器部署到云中。
Dockerfile:
FROM openjdk:8-jdk-alpine
RUN mkdir -p /usr/local/configserver
ADD jce_policy-8.zip /tmp/
RUN unzip /tmp/jce_policy-8.zip && \
rm /tmp/jce_policy-8.zip && \
yes | cp -v /tmp/UnlimitedJCEPolicyJDK8/*.jar /usr/lib/jvm/java-1.8-openjdk/jre/lib/security/
ADD @project.build.finalName@.jar /usr/local/configserver/
ADD run.sh run.sh
RUN chmod +x run.sh
CMD ./run.sh
Run Code Online (Sandbox Code Playgroud)
与Dockerfile中的第4步相关的输出:
Run Code Online (Sandbox Code Playgroud)... ---> Using cache ---> dd33d4c12d29 Step 4/8 : RUN unzip /tmp/jce_policy-8.zip && rm /tmp/jce_policy-8.zip && yes | cp -v /tmp/UnlimitedJCEPolicyJDK8/*.jar /usr/lib/jvm/java-1.8-openjdk/jre/lib/security/ ---> Running in 1071273ceee5 Archive: /tmp/jce_policy-8.zip …
alpine-linux ×10
docker ×8
dockerfile ×3
apt ×1
apt-get ×1
bash ×1
centos ×1
chromium ×1
cron ×1
dns ×1
go ×1
javascript ×1
linux ×1
locale ×1
node.js ×1
permissions ×1
php ×1
postgresql ×1
proxy ×1
puppeteer ×1
unzip ×1