Comments (4)
I've created a small example to recreate the behavior, but was not able to reproduce the error:
FROM http://downloads.openwrt.org/releases/18.06.5/targets/brcm2708/bcm2710/openwrt-18.06.5-brcm2708-bcm2710-rpi-3-ext4-factory.img.gz
# test size of the image
RUN sh -c "
echo hello
echo world
"
from pimod.
sh
of OpenWRT is kind of a special case and does not reproduce the problem clear enough. When using bash -c
the error can be reproduces even in OpenWRT.
from pimod.
A central conceptual problem is that printf ' %q'
does format the input as bash
-escaped string. When supplying these strings to sh
, misinterpretations can occur and seem to have happened here.
In the OpenWRT example /bin/sh
supports the requested formatting options, but the Debian (vanilla) /bin/sh
did not support the format string.
A discussion of the probem can be found here: https://stackoverflow.com/questions/12162010/posix-sh-equivalent-for-bash-s-printf-q
A workaround through reformatting the printf
's output is implemented here: https://github.com/mentalisttraceur/esceval/blob/master/sh/esceval.sh
from pimod.
Lines 72 to 73 in 12e8ae4
Following the current implementation the guest OS requires /bin/sh
to exist and to support the requested format. This additional shell could be circumvented, if there was a chroot
option to specify a chdir, because cd
inside this additional shell would not be required.
As there is no such option, a custom chroot
patch could be useful here.
from pimod.
Related Issues (20)
- cgroup problem when running docker HOT 1
- INSTALL does not copy hidden files HOT 4
- PUMP does not work as expected
- PUMP can result in non-bootable images HOT 1
- RUN export VARIABLE=foo gives error "unbound variable" HOT 5
- Chaining commands with && has unexpected behaviour HOT 2
- Feature request: checkpoints HOT 3
- Feature request: provide some kind of access to host files HOT 1
- Can't create image on WSL2 HOT 2
- heredoc bulk execution not working HOT 3
- /etc/resolv.conf: networking not working properly HOT 2
- Find clean way to edit resolv.conf if it was replaced/bind mounted HOT 3
- Feat: A `SHRINK` command HOT 2
- Unable to unmount when based on broken image
- Cannot run HOST commands before FROM/INPLACE HOT 1
- Cannot mount an extracted root filesystem HOT 1
- Create docker images for linux/arm/v7 HOT 3
- Dependency Dashboard
- Is not generating the image anymore HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pimod.