protoc-artifacts: Use ENTRYPOINT to enable devtoolset-1.1

ENTRYPOINT is used even when other commands are specified on the "docker
run" command line. This allows running one-off commands in the docker
image (especially combined with volume binding with the host) with the
correct environment variables.
diff --git a/protoc-artifacts/Dockerfile b/protoc-artifacts/Dockerfile
index 2644693..c346586 100644
--- a/protoc-artifacts/Dockerfile
+++ b/protoc-artifacts/Dockerfile
@@ -39,5 +39,7 @@
                    devtoolset-1.1-libstdc++-devel.i686 && \
     yum clean all
 
+COPY scl-enable-devtoolset.sh /var/local/
+
 # Start in devtoolset environment that uses GCC 4.7
-CMD ["scl", "enable", "devtoolset-1.1", "bash"]
+ENTRYPOINT ["/var/local/scl-enable-devtoolset.sh"]
diff --git a/protoc-artifacts/README.md b/protoc-artifacts/README.md
index d11cde5..dcaec98 100644
--- a/protoc-artifacts/README.md
+++ b/protoc-artifacts/README.md
@@ -140,7 +140,7 @@
 
 To run the image:
 ```
-$ docker run -it --rm=true protoc-artifacts
+$ docker run -it --rm=true protoc-artifacts bash
 ```
 
 To checkout protobuf (run within the container):
diff --git a/protoc-artifacts/scl-enable-devtoolset.sh b/protoc-artifacts/scl-enable-devtoolset.sh
new file mode 100755
index 0000000..8d9585e
--- /dev/null
+++ b/protoc-artifacts/scl-enable-devtoolset.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+set -eu -o pipefail
+
+quote() {
+  local arg
+  for arg in "$@"; do
+    printf "'"
+    printf "%s" "$arg" | sed -e "s/'/'\\\\''/g"
+    printf "' "
+  done
+}
+
+exec scl enable devtoolset-1.1 "$(quote "$@")"