Skip to content

Commit ebe992c

Browse files
authored
Merge pull request #2 from tianon/docker-entrypoint
Add initial entrypoint script for handling direct "bash" flags ("docker run bash -c '...'")
2 parents b95678d + bdf5b9d commit ebe992c

19 files changed

+118
-0
lines changed

.travis.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ before_script:
2121

2222
script:
2323
- docker build -t "$image" .
24+
- docker run -it --rm "$image" --version
25+
- docker run -it --rm "$image" echo hi
2426
- ~/official-images/test/run.sh "$image"
2527

2628
after_script:

3.0/Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,4 +115,6 @@ RUN set -ex; \
115115
# for some reason, 3.0.xx manifests as 3.00.xx (hence the extra "0" added in the following check)
116116
[ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "${_BASH_VERSION}0.$_BASH_LATEST_PATCH" ];
117117

118+
COPY docker-entrypoint.sh /usr/local/bin/
119+
ENTRYPOINT ["docker-entrypoint.sh"]
118120
CMD ["bash"]

3.0/docker-entrypoint.sh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/usr/bin/env bash
2+
set -Eeuo pipefail
3+
4+
# first arg is `-f` or `--some-option`
5+
# or there are no args
6+
if [ "$#" -eq 0 ] || [ "${1#-}" != "$1" ]; then
7+
# docker run bash -c 'echo hi'
8+
exec bash "$@"
9+
fi
10+
11+
exec "$@"

3.1/Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,4 +114,6 @@ RUN set -ex; \
114114
bash --version; \
115115
[ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "$_BASH_VERSION.$_BASH_LATEST_PATCH" ];
116116

117+
COPY docker-entrypoint.sh /usr/local/bin/
118+
ENTRYPOINT ["docker-entrypoint.sh"]
117119
CMD ["bash"]

3.1/docker-entrypoint.sh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/usr/bin/env bash
2+
set -Eeuo pipefail
3+
4+
# first arg is `-f` or `--some-option`
5+
# or there are no args
6+
if [ "$#" -eq 0 ] || [ "${1#-}" != "$1" ]; then
7+
# docker run bash -c 'echo hi'
8+
exec bash "$@"
9+
fi
10+
11+
exec "$@"

3.2/Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,4 +114,6 @@ RUN set -ex; \
114114
bash --version; \
115115
[ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "$_BASH_VERSION.$_BASH_LATEST_PATCH" ];
116116

117+
COPY docker-entrypoint.sh /usr/local/bin/
118+
ENTRYPOINT ["docker-entrypoint.sh"]
117119
CMD ["bash"]

3.2/docker-entrypoint.sh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/usr/bin/env bash
2+
set -Eeuo pipefail
3+
4+
# first arg is `-f` or `--some-option`
5+
# or there are no args
6+
if [ "$#" -eq 0 ] || [ "${1#-}" != "$1" ]; then
7+
# docker run bash -c 'echo hi'
8+
exec bash "$@"
9+
fi
10+
11+
exec "$@"

4.0/Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,4 +117,6 @@ RUN set -ex; \
117117
bash --version; \
118118
[ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "$_BASH_VERSION.$_BASH_LATEST_PATCH" ];
119119

120+
COPY docker-entrypoint.sh /usr/local/bin/
121+
ENTRYPOINT ["docker-entrypoint.sh"]
120122
CMD ["bash"]

4.0/docker-entrypoint.sh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/usr/bin/env bash
2+
set -Eeuo pipefail
3+
4+
# first arg is `-f` or `--some-option`
5+
# or there are no args
6+
if [ "$#" -eq 0 ] || [ "${1#-}" != "$1" ]; then
7+
# docker run bash -c 'echo hi'
8+
exec bash "$@"
9+
fi
10+
11+
exec "$@"

4.1/Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,4 +114,6 @@ RUN set -ex; \
114114
bash --version; \
115115
[ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "$_BASH_VERSION.$_BASH_LATEST_PATCH" ];
116116

117+
COPY docker-entrypoint.sh /usr/local/bin/
118+
ENTRYPOINT ["docker-entrypoint.sh"]
117119
CMD ["bash"]

4.1/docker-entrypoint.sh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/usr/bin/env bash
2+
set -Eeuo pipefail
3+
4+
# first arg is `-f` or `--some-option`
5+
# or there are no args
6+
if [ "$#" -eq 0 ] || [ "${1#-}" != "$1" ]; then
7+
# docker run bash -c 'echo hi'
8+
exec bash "$@"
9+
fi
10+
11+
exec "$@"

4.2/Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,4 +114,6 @@ RUN set -ex; \
114114
bash --version; \
115115
[ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "$_BASH_VERSION.$_BASH_LATEST_PATCH" ];
116116

117+
COPY docker-entrypoint.sh /usr/local/bin/
118+
ENTRYPOINT ["docker-entrypoint.sh"]
117119
CMD ["bash"]

4.2/docker-entrypoint.sh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/usr/bin/env bash
2+
set -Eeuo pipefail
3+
4+
# first arg is `-f` or `--some-option`
5+
# or there are no args
6+
if [ "$#" -eq 0 ] || [ "${1#-}" != "$1" ]; then
7+
# docker run bash -c 'echo hi'
8+
exec bash "$@"
9+
fi
10+
11+
exec "$@"

4.3/Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,4 +115,6 @@ RUN set -ex; \
115115
bash --version; \
116116
[ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "$_BASH_VERSION.$_BASH_LATEST_PATCH" ];
117117

118+
COPY docker-entrypoint.sh /usr/local/bin/
119+
ENTRYPOINT ["docker-entrypoint.sh"]
118120
CMD ["bash"]

4.3/docker-entrypoint.sh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/usr/bin/env bash
2+
set -Eeuo pipefail
3+
4+
# first arg is `-f` or `--some-option`
5+
# or there are no args
6+
if [ "$#" -eq 0 ] || [ "${1#-}" != "$1" ]; then
7+
# docker run bash -c 'echo hi'
8+
exec bash "$@"
9+
fi
10+
11+
exec "$@"

4.4/Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,4 +115,6 @@ RUN set -ex; \
115115
bash --version; \
116116
[ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "$_BASH_VERSION.$_BASH_LATEST_PATCH" ];
117117

118+
COPY docker-entrypoint.sh /usr/local/bin/
119+
ENTRYPOINT ["docker-entrypoint.sh"]
118120
CMD ["bash"]

4.4/docker-entrypoint.sh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/usr/bin/env bash
2+
set -Eeuo pipefail
3+
4+
# first arg is `-f` or `--some-option`
5+
# or there are no args
6+
if [ "$#" -eq 0 ] || [ "${1#-}" != "$1" ]; then
7+
# docker run bash -c 'echo hi'
8+
exec bash "$@"
9+
fi
10+
11+
exec "$@"

docker-entrypoint.sh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/usr/bin/env bash
2+
set -Eeuo pipefail
3+
4+
# first arg is `-f` or `--some-option`
5+
# or there are no args
6+
if [ "$#" -eq 0 ] || [ "${1#-}" != "$1" ]; then
7+
# docker run bash -c 'echo hi'
8+
exec bash "$@"
9+
fi
10+
11+
exec "$@"

update.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ for version in "${versions[@]}"; do
5959
s/^(ENV _BASH_PATCH_LEVEL) .*/\1 '"$patchLevel"'/;
6060
s/^(ENV _BASH_LATEST_PATCH) .*/\1 '"$latestPatch"'/
6161
' "$version/Dockerfile"
62+
cp -a docker-entrypoint.sh "$version/"
6263
)
6364
travisEnv='\n - VERSION='"$version$travisEnv"
6465
done

0 commit comments

Comments
 (0)