首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从docker创建高山linux iso - libburn权限被拒绝

从docker创建高山linux iso - libburn权限被拒绝
EN

Stack Overflow用户
提问于 2019-03-24 21:12:09
回答 2查看 1.3K关注 0票数 3

我一直在尝试按照here的标准说明在一个docker容器中为alpine-linux构建一个iso-image,但是由于libburn的原因,我似乎无法将.iso写回挂载的卷中:

代码语言:javascript
复制
    >>> mkimage-x86_64: Creating alpine-standard-edge-x86_64.iso
xorriso 1.4.8 : RockRidge filesystem manipulator, libburnia project.

libburn : SORRY : Failed to open device (a pseudo-drive) : Permission denied
libburn : FATAL : Burn run failed
xorriso : FATAL : -abort_on 'FAILURE' encountered 'FATAL' during image writing
libisofs: MISHAP : Image write cancelled
xorriso : FAILURE : libburn indicates failure with writing.

这是尝试运行教程中下载的脚本的标准结果:

代码语言:javascript
复制
sh aports/scripts/mkimage.sh --tag edge --outdir /build2/ --arch x86_64 --repository http://dl-cdn.alpinelinux.org/alpine/edge/main --profile standard

docker镜像im使用:

代码语言:javascript
复制
FROM alpine:latest
RUN addgroup root abuild
RUN apk add --update \
    alpine-sdk \
   # build-base \
    apk-tools \
    alpine-conf \
    busybox \
    git \
    fakeroot \
    syslinux \
    xorriso \
    squashfs-tools \
    mtools \
    dosfstools \
    grub-efi \
  && rm -rf /var/cache/apk/*

COPY . /usr/src/app 
WORKDIR /usr/src/app
RUN mkdir /usr/src/app/build
RUN touch /usr/src/app/build/worked.txt
RUN adduser -G abuild -g "Alpine Package Builder" -s /bin/sh -u 12345 -D builder
RUN echo "builder:newpass"|chpasswd


RUN chgrp -R abuild /usr/local;                                      \
    find /usr/local -type d | xargs chmod g+w;                        \
    echo "builder ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/builder; \
    chmod 0440 /etc/sudoers.d/builder

WORKDIR /build2/
RUN git clone git://git.alpinelinux.org/aports
RUN chmod +x aports/scripts/mkimage.sh
RUN abuild-keygen -i -a
USER builder

我看过官方论坛,但只有一个帖子提到了类似的东西,但没有提到任何实际的解决方案。

如果找不到解决方案,还有没有人可以推荐一个好的替代最小发行版,可以通过脚本为x_86,x_64和rpi构建iso?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-25 03:39:07

您可以使用script alpine-make-vm-image轻松创建自己的高山Linux ISO映像。

示例:

代码语言:javascript
复制
sudo ./alpine-make-vm-image \
  --image-format qcow2 \
  --image-size 5G \
  --packages "ca-certificates git ssl_client" \
  --script-chroot \
  alpine-$(date +%Y-%m-%d).qcow2 -- ./configure.sh
票数 3
EN

Stack Overflow用户

发布于 2019-10-09 13:02:08

由于您创建的用户无法访问xorriso所需的伪设备,您将收到权限被拒绝错误。我删除了所有的用户创建部分,只需以root身份运行整个程序,它就可以工作了。

下面是我使用的Dockerfile:

代码语言:javascript
复制
FROM alpine:latest

RUN apk add --no-cache \
    alpine-conf \
    alpine-sdk \
    apk-tools \
    dosfstools \
    grub-efi \
    mtools \
    squashfs-tools \
    syslinux \
    xorriso

WORKDIR /src

RUN git clone git://git.alpinelinux.org/aports

RUN chmod +x aports/scripts/mkimage.sh

RUN addgroup root abuild

RUN abuild-keygen -i -a -n

WORKDIR /build

ENTRYPOINT /src/aports/scripts/mkimage.sh

CMD "--tag edge --arch x86_64 --repository http://dl-cdn.alpinelinux.org/alpine/edge/main --profile standard"

然后构建并运行。

docker build -t alpine-iso .

docker run -v "$(pwd):/build" -it alpine-iso

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55324152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档