make small repo for Dockefile syntax-info

This commit is contained in:
Alexander Mahr 2024-12-27 10:23:29 +01:00
commit 7c8330880c
2 changed files with 51 additions and 0 deletions

37
Dockerfile Normal file
View file

@ -0,0 +1,37 @@
#BASEIMAGE alpine:latest
FROM alpine:latest
#BUILD_TIME_ENVIRONMENT_VARIABLE MAX_CPU=4
ARG MAX_CPU=4
#ENVIRONMENT_VARIABLE_IN_CONTAINER JAVA_HOME=/opt/java
ENV JAVA_HOME=/opt/java
#CONTAINERIMAGE_BUILD_RECIPE_STEP touch file
RUN echo "$MAX_CPU" > /max-cpu
#DEFAULT_ARGUMENTS_FOR_TO_CONTAINER ["1","2","3","argument 4"]
CMD ["1","2","3","argument 4"]
#COMMANDLINE_FOR_PROCESS_EXECUTED_AS_PID1_IN_CONTAINER ["/bin/sh","-xc","echo $@",""]
ENTRYPOINT ["/bin/sh","-xc","echo \"$@\"",""]
#CONTAINERIMAGE_BUILD_RECIPE_STEP <<EOF
#cat > /entrypoint.sh << 'EP'
##!/bin/sh
#echo "$@"
#EP
#chmod u+rx /entrypoint.sh
#EOF
RUN <<EOF
cat > /entrypoint.sh << 'EP'
#!/bin/sh
echo "$@"
EP
chmod u+rx /entrypoint.sh
EOF
#COMMANDLINE_FOR_PROCESS_EXECUTED_AS_PID1_IN_CONTAINER ["/entrypoint.sh"]
ENTRYPOINT ["/entrypoint.sh"]

14
README.md Normal file
View file

@ -0,0 +1,14 @@
# Dockerfile syntax insights
Some Dockerfile syntax stances like :
* [`RUN`](https://docs.docker.com/reference/dockerfile/#run)
* [`CMD`](https://docs.docker.com/reference/dockerfile/#cmd)
* [`ENTRYPOINT`](https://docs.docker.com/reference/dockerfile/#entrypoint)
might not be as clear as:
* `RUN_THIS_COMMAND_TO_CREATE_CONTAINERIMAGE_NEXT_LAYER` (aka `RUN`)
* `DEFAULT_ARGUMENTS_APPENDED_TO_CONTAINER_PID1_COMMANDLINE` (aka `CMD` and clearly challenging to conflate DEFAULT_ARUMENTS with COMMAND)
* `ENTRYPOINT` (aka "DEFAULT_CONTAINER_PID1_COMMAND")
the [Dockerfile](./Dockerfile) tries to give examples here