Alpine 中是否可以安装有效的 CloudWatch 代理包?我们希望在 Alpine 上为 CloudWatch Agent 构建自定义 docker,但可以在https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/download-cloudwatch-agent-commandline.html中进行下载中的可用下载似乎不起作用(我尝试了一些 deb 或 rpm)。
一些错误:无法安装下载的 deb 文件:
/ # dpkg -i -E amazon-cloudwatch-agent.deb
dpkg: error processing archive amazon-cloudwatch-agent.deb (--install):
package architecture (amd64) does not match system (musl-linux-amd64)
Run Code Online (Sandbox Code Playgroud)
并无法安装下载的 rpm 文件:
/ # rpm -U amazon-cloudwatch-agent.rpm
error: Failed dependencies:
/bin/sh is needed by amazon-cloudwatch-agent-1.247347.6b250880-1.x86_64
Run Code Online (Sandbox Code Playgroud)
CloudWatch Agent 是否支持 Alpine 有明确的答案吗?显然它是由 CloudWatch Log Agent 支持的。
我正在使用 Alpine、php7.2-fpm 和 Composer 构建 Docker 镜像。
尝试安装 Composer 时会出现问题,它使用 https 通过 php 下载安装程序。
我添加了存储库以便能够安装 php7.2(用于安装 Composer)及其软件包:
RUN wget -O /etc/apk/keys/phpearth.rsa.pub https://repos.php.earth/alpine/phpearth.rsa.pub && \
echo "https://repos.php.earth/alpine/v3.7" >> /etc/apk/repositories && \
apk update
Run Code Online (Sandbox Code Playgroud)
当我尝试下载composer时出现以下错误:
/ # php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
PHP Warning: copy(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? in Command line code on line 1
PHP Stack trace:
PHP 1. {main}() Command line code:0
PHP 2. copy() Command line …Run Code Online (Sandbox Code Playgroud) 我正在寻找基于 alpine 的 openjdk 17 docker 镜像。看起来我们这里有一个
但下面的存储库显示它尚未准备好正式发布。所以我想知道上面的docker镜像从哪里获取源文件。
我有一个 dockerfile,其中使用 alpine-nodejs 版本 16 作为基础映像。npm 版本是 8。
npm install --production当执行的步骤时docker build,它还会安装 package.json 的 dev-dependencies 下列出的依赖项,这与生产标志的用例相反。我也用过npm install --only=production,但似乎也不起作用。
在 alpine nodejs 版本 14 中,该标志按预期工作,并且开发依赖项未安装在容器中。alpine 节点版本 16 镜像有问题吗?谢谢。
我在使用运行 Spring boot 应用程序的 amazoncorretto-alpine 映像时遇到问题。为了启动容器,我使用特定的 bash 脚本(以及其他内容)尝试运行 Spring boot 应用程序的可执行 jar。
我的需要是使用不同的用户运行可执行 jar,因此当 bash 脚本使用 root 运行时,“java -jar springBoot.jar”必须以“spring”用户身份执行。
在 docker 文件中,已创建用户和组并授予 springBoot.jar 的权限,如下所示:
...
RUN addgroup -S spring && adduser -S -D spring -G spring
RUN chown spring:spring springBoot.jar
...
CMD ["myBash.sh"]
Run Code Online (Sandbox Code Playgroud)
用户和组已存在,文件的权限已正确配置,并且容器通过执行 myBash.sh 启动。
在以“root”权限运行的 bash 中,我使用此命令行与另一个用户一起执行 jar:
su - spring -c "java -jar springBoot.jar"
Run Code Online (Sandbox Code Playgroud)
我通过将 -c“命令”放在用户之前进行了一些其他测试,但错误始终是相同的:
“该帐户不可用”
启动容器时,此消息会打印在 Docker 控制台中。
图中的阿尔卑斯版本:
“Alpine Linux v3.15”
注意:如果我删除上面的指令“su - spring....”并仅在 bash 脚本中运行 java -jar springBoot.jar 一切正常,但应用程序以 root 启动(如预期)。
任何人都知道可能是什么问题?
我在 MacOS 上通过 Docker Desktop 运行 Docker,在容器中安装软件包时遇到很多麻烦,因为它无法验证任何 ssl 证书。
\napk update例如,当我运行时,我收到此错误:
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz\n139797308250952:error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed:ssl/statem/statem_clnt.c:1914:\nERROR: https://dl-cdn.alpinelinux.org/alpine/v3.14/main: Permission denied\nRun Code Online (Sandbox Code Playgroud)\n当我尝试bundle install:
Could not verify the SSL certificate for https://rubygems.org/.\nThere is a chance you are experiencing a man-in-the-middle attack, but most likely your system doesn\'t have the CA certificates needed for verification.\nRun Code Online (Sandbox Code Playgroud)\n甚至是一个简单的卷曲curl https://google.com.br:
curl: (60) SSL certificate problem: unable to get local issuer certificate\nMore details here: https://curl.se/docs/sslcerts.html\n\ncurl failed to …Run Code Online (Sandbox Code Playgroud) 我阅读了一些Docker 和 Node.js 最佳实践文章,例如https://github.com/nodejs/docker-node/blob/main/docs/BestPractices.md或使用 Docker 容器化 Node.js Web 应用程序的 10 个最佳实践,或者Node 和 NPM 的 Dockerfile 良好实践。所有这些文章至少是在 2021 年写或更新的,我不列出 2021 年之前写的文章,但也有不少。
\n他们都反对CMD ["npm", "run", "start"]。主要原因是 npm 会吞掉SIGTERM 和 SIGINT 等退出信号,因此我的节点应用程序中的正常关闭代码将无法运行。
我猜旧的 npm 就是这种情况(虽然我没有测试它),但我已经测试了 node14+npm6 和 node16+npm8,我可以验证 npm6/8 不会吞下这些事件和我的优雅关闭代码正在运行。不确定这是否是因为 npm 修复了它。
\n因此,唯一的问题仍然是还有 1 个进程 npm 需要运行,即 NPM 作为PID 1运行。一些文章说问题是“PID 1 不会响应 SIGINT”,但据我证实,情况并非如此。
\n许多文章(例如这个nodejs文档)建议只是,CMD [ "node", "server.js" ]但也在https://github.com/nodejs/docker-node/blob/main/docs/BestPractices.md#handling-kernel-signals …
我的目标是理解为什么会有nginx图像和nginx:alpine图像。
我知道的:
nginx更大,52.79 MB。nginx使用debian:bullseye-slim.nginx:alpine较小,为 9.51 MB。nginx:alpine使用alpine.docker run -p 8080:80 -v ${PWD}:/usr/share/nginx/html nginx:alpine我无法理解为什么默认图像使用debian:bullseye-slim而不是alpine.
当尝试在我的 PHP 8.1 alpine docker 容器中格式化货币时,我总是得到默认区域设置 (en_US)。
\n$ docker run -it --rm php:8.1-fpm-alpine /bin/ash\n# apk update && apk add icu-dev\n# docker-php-ext-configure intl && docker-php-ext-install intl\n# php -a\n> $formatter = new NumberFormatter('nl_NL', NumberFormatter::CURRENCY);\n> echo $formatter->getLocale();\nen_US\n> echo $formatter->format(1234.567);\n\xe2\x82\xac1,234.57\nRun Code Online (Sandbox Code Playgroud)\n我期望 getLocale() 返回 nl_NL 和 format 返回 \xe2\x82\xac1.234,57。
\n如果我尝试 locale en_GB,getLocale() 确实返回 en_GB。
\n也欢迎任何有关编写更好问题的建议。
\n这是我在stackoverflow上遇到的第一个问题,因此我希望它遵循社区准则:
我已经基于一个已经存在的映像构建了一个docker 映像,其唯一目的是在容器中运行双重性以将文件和文件夹备份到欧洲的Amazon S3存储桶。
当在由图像产生的容器内手动运行时,Duplicity工作了几天。现在,我继续使用CoreOS通过主机上的单元文件运行容器,但事情不再起作用-但是该命令也无法正常运行,我在一个双重容器中手动运行了它。
运行命令:
docker run --rm --env-file=<my backup env file>.env --name=<container image> -v <cache container>:/home/duplicity/.cache/duplicity -v <docker volume with gpg keys>:/home/duplicity/.gnupg --volumes-from <docker container of interest> gymnae/duplicity
Run Code Online (Sandbox Code Playgroud)
env文件包含以下内容:
PASSPHRASE=<my super secret passphrase>
AWS_ACCESS_KEY_ID=<my aws access key id>
AWS_SECRET_ACCESS_KEY=<my aws access key>
SOURCE_PATH=<where does the data come from>
REMOTE_URL=s3://s3.eu-central-1.amazonaws.com/<my bucket>
PARAMS_CLEAN="--remove-older-than 3M --force --extra-clean"
ENCRYPT_KEY=<derived from the gpg key>
Run Code Online (Sandbox Code Playgroud)
并且init.sh被调用的docker run看起来像这样:
#!/bin/sh
duplicity \
--verbosity 8 \
--s3-use-ia \
--s3-use-new-style \ …Run Code Online (Sandbox Code Playgroud) alpine-linux ×10
docker ×8
dockerfile ×2
npm ×2
php ×2
amazon-s3 ×1
bash ×1
composer-php ×1
debian-based ×1
docker-swarm ×1
duplicity ×1
gnupg ×1
intl ×1
java ×1
macos ×1
nginx ×1
node.js ×1
npm-install ×1
openjdk-17 ×1
php-openssl ×1
signals ×1
spring-boot ×1
ssl ×1