[CentOS] HERE document in docker script file

Tue Apr 30 06:54:58 UTC 2019
Gianluca Cecchi <gianluca.cecchi at gmail.com>

On Tue, Apr 30, 2019 at 4:44 AM H <agents at meddatainc.com> wrote:

> I am trying to use a HERE document in a docker script file to generate a
> text file but must be doing something wrong since I get a warning message
> that I did not expect:
>
> EOF: line 6: warning: here-document at line 0 delimited by end-of-file
> (wanted `EOF')
>
> This is the sample script I am testing in my docker file:
>
> RUN bash -c "$(/bin/echo -e "cat << 'EOF' | tee -a /test.txt \
>     \n<test> \
>     \n  someting here \
>     \n  something else here \
>     \n</test>")" \
> EOF
>
> Can anyone see what is wrong in the above statement?
>
> Thanks.
>
>
>
The second EOF should be before  the part ")" \ and not after, because it
has to represent the closure of the first one above....

So it should be something like this (I have put /tmp/test.txt as I tested
as non root user that cannot write into /)

bash -c "$(/bin/echo -e "cat <<EOF | tee -a /tmp/test.txt \
\n<test> \
\n something here \
\n</test>
EOF
")"

I also removed the single apex from the first 'EOF'.

I get:

[g.cecchi at ope46 ~]$ ll /tmp/test.txt
ls: cannot access '/tmp/test.txt': No such file or directory

[g.cecchi at ope46 ~]$ bash -c "$(/bin/echo -e "cat <<EOF | tee -a
/tmp/test.txt \
> \n<test> \
> \n something here \
> \n</test>
> EOF
> ")"
<test>
 something here
</test>

[g.cecchi at ope46 ~]$ cat /tmp/test.txt
<test>
 something here
</test>
[g.cecchi at ope46 ~]$


HIH,
Gianluca