docker - 使用 Alpine Linux 构建 Docker 会导致分段错误
问题描述
我一直在使用alpine/edge/community
,我猜最近在引擎盖下发生了一些变化,因为我无法再从我的 docker 文件构建图像,而是出现了 seg 错误。
输出:
Sending build context to Docker daemon 54.78kB
Step 1/6 : FROM ruby:2.5-alpine
2.5-alpine: Pulling from library/ruby
...
Status: Downloaded newer image for ruby:2.5-alpine
---> b14dcd6b80e9
Step 2/6 : RUN apk add --update build-base gcc && gem install bundler && mkdir -p /mnt/fileview
---> Running in f68bd52262b7
fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/community/x86_64/APKINDEX.tar.gz
(1/17) Installing binutils (2.35.1-r1)
(2/17) Installing libmagic (5.39-r0)
(3/17) Installing file (5.39-r0)
(4/17) Installing libgomp (10.2.1_pre1-r3)
(5/17) Installing libatomic (10.2.1_pre1-r3)
(6/17) Installing libgphobos (10.2.1_pre1-r3)
(7/17) Installing isl22 (0.22-r0)
[91mSegmentation fault (core dumped)
[0mThe command '/bin/sh -c apk add --update build-base gcc && gem install bundler && mkdir -p /mnt/fileview' returned a non-zero code: 139
码头工人文件:
FROM ruby:2.5-alpine
RUN apk add --update build-base gcc && gem install bundler && mkdir -p /mnt/fileview
WORKDIR /mnt/fileview
COPY * ./
RUN bundle install --deployment
CMD ["bundle", "exec", "ruby", "viewer_app.rb"]
它看起来像isl22
被添加为 alpine v3.13 又名新的最新版本的依赖项,这可能会导致问题。但是我不确定如何解决这个问题。
任何指导或帮助将不胜感激。
解决方案
Dockerfile
由于调用 bundle_install 命令时出现错误,我无法构建给定的:
DESKTOP-SI79RLD:~/test$ cat Dockerfile
FROM ruby:2.5-alpine
RUN apk add --update build-base gcc && gem install bundler && mkdir -p /mnt/fileview
WORKDIR /mnt/fileview
COPY * ./
RUN bundle install --deployment
CMD ["bundle", "exec", "ruby", "viewer_app.rb"]
DESKTOP-SI79RLD:~/test$ docker build .
[+] Building 1.2s (9/9) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 263B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/ruby:2.5-alpine 0.7s
=> [internal] load build context 0.0s
=> => transferring context: 257B 0.0s
=> [1/5] FROM docker.io/library/ruby:2.5-alpine@sha256:009796beb93df8dc2d51aa07efd2b6e7e5b26504688e7ce0db25cec52 0.0s
=> CACHED [2/5] RUN apk add --update build-base gcc && gem install bundler && mkdir -p /mnt/fileview 0.0s
=> CACHED [3/5] WORKDIR /mnt/fileview 0.0s
=> [4/5] COPY * ./ 0.0s
=> ERROR [5/5] RUN bundle install --deployment 0.4s
------
> [5/5] RUN bundle install --deployment:
#9 0.353 [DEPRECATED] The `--deployment` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set --local deployment 'true'`, and stop using this flag
#9 0.383 Could not locate Gemfile
------
executor failed running [/bin/sh -c bundle install --deployment]: exit code: 10
推荐阅读
- spring-boot - 不可解析的导入POM:找不到org.springframework.cloud:spring-cloud-dependencies:pom:${spring-cloud.version}
- r - 从 www 子目录为 R shinydashboard 链接 JS 文件
- sql - 如何在两列之间添加列?
- php - 隐藏在 Woocommerce 仪表板中,针对来自 Woocommerce 的特定用户角色“订单”子菜单
- c# - C# 中的 TripleDES 算法
- java - 如何解决此问题 org.json.JSONException: 类型 java.lang.String 的值数据库无法转换为 JSONObject
- javascript - Counting rel number from html selectbox with jquery
- c# - 在对象内连接字符串?
- java - Api 与 Postman 一起工作,但不适用于 Android 应用程序
- filebeat - 我想排除 filebeat 读取的日志中的某些行,并且还想通过在 filebeat 中使用处理器来添加标签,但它不起作用