Обрабатывать EOF с помощью многострочной команды в Dockerfile - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь использовать sfdisk для создания файла изображения внутри контейнера docker, и я могу без проблем использовать приведенную ниже команду:

root@c8e9be2eb26f:/# sfdisk bbb_image.img << EOF
> 1M,48M,0xE,*
> ,,,-
> EOF
Checking that no-one is using this disk right now ... OK

Disk bbb_image.img: 1 GiB, 1073741824 bytes, 2097152 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

>>> Created a new DOS disklabel with disk identifier 0x34b8e793.
bbb_image.img1: Created a new partition 1 of type 'W95 FAT16 (LBA)' and of size 48 MiB.
bbb_image.img2: Created a new partition 2 of type 'Linux' and of size 975 MiB.
bbb_image.img3: Done.

New situation:
Disklabel type: dos
Disk identifier: 0x34b8e793

Device         Boot  Start     End Sectors  Size Id Type
bbb_image.img1 *      2048  100351   98304   48M  e W95 FAT16 (LBA)
bbb_image.img2      100352 2097151 1996800  975M 83 Linux

The partition table has been altered.
Syncing disks.

Теперь в моем Dockerfile это, похоже, не ' работать и воспроизводить неполные результаты:

RUN sfdisk bbb_image.img << "EOF\n\
1M,48M,0xE,*\n\
,,,-\n\
EOF"

И воспроизвести это в консоли, что неправильно:

Step 4/4 : RUN sfdisk bbb_image.img << "EOF\n1M,48M,0xE,*\n,,,-\nEOF\n"
 ---> Running in afc86ffef92a
Checking that no-one is using this disk right now ... OK

Disk bbb_image.img: 1 GiB, 1073741824 bytes, 2097152 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

>>> Done.

New situation:
ERROR: Service 'test' failed to build: The command '/bin/sh -c sfdisk bbb_image.img << "EOF\n1M,48M,0xE,*\n,,,-\nEOF\n"' returned a non-zero code: 1

Я не уверен, как обрабатывать EOF в Dockerfile.

1 Ответ

0 голосов
/ 24 марта 2020

Может быть попробовать это:

RUN sfdisk bbb_image.img << "\n1M,48M,0xE,*\n,,,-\n"
...