Browse Source

Merge pull request #4447 from ejona86/cleaner-protoc-artifacts

Cleaner protoc artifacts
Feng Xiao 7 years ago
parent
commit
4274e6af2d
3 changed files with 32 additions and 11 deletions
  1. 13 9
      protoc-artifacts/Dockerfile
  2. 6 2
      protoc-artifacts/README.md
  3. 13 0
      protoc-artifacts/scl-enable-devtoolset.sh

+ 13 - 9
protoc-artifacts/Dockerfile

@@ -11,7 +11,9 @@ RUN yum install -y git \
                    libtool \
                    glibc-static.i686 \
                    glibc-devel \
-                   glibc-devel.i686
+                   glibc-devel.i686 \
+                   && \
+    yum clean all
 
 # Install Java 8
 RUN wget -q --no-cookies --no-check-certificate \
@@ -27,15 +29,17 @@ RUN wget -q http://apache.cs.utah.edu/maven/maven-3/3.3.9/binaries/apache-maven-
 ENV PATH /var/local/apache-maven-3.3.9/bin:$PATH
 
 # Install GCC 4.7 to support -static-libstdc++
-RUN wget http://people.centos.org/tru/devtools-1.1/devtools-1.1.repo -P /etc/yum.repos.d
-RUN bash -c 'echo "enabled=1" >> /etc/yum.repos.d/devtools-1.1.repo'
-RUN bash -c "sed -e 's/\$basearch/i386/g' /etc/yum.repos.d/devtools-1.1.repo > /etc/yum.repos.d/devtools-i386-1.1.repo"
-RUN sed -e 's/testing-/testing-i386-/g' -i /etc/yum.repos.d/devtools-i386-1.1.repo
-RUN rpm --rebuilddb && yum install -y devtoolset-1.1 \
+RUN wget http://people.centos.org/tru/devtools-1.1/devtools-1.1.repo -P /etc/yum.repos.d && \
+    bash -c 'echo "enabled=1" >> /etc/yum.repos.d/devtools-1.1.repo' && \
+    bash -c "sed -e 's/\$basearch/i386/g' /etc/yum.repos.d/devtools-1.1.repo > /etc/yum.repos.d/devtools-i386-1.1.repo" && \
+    sed -e 's/testing-/testing-i386-/g' -i /etc/yum.repos.d/devtools-i386-1.1.repo && \
+    rpm --rebuilddb && \
+    yum install -y devtoolset-1.1 \
                    devtoolset-1.1-libstdc++-devel \
-                   devtoolset-1.1-libstdc++-devel.i686
+                   devtoolset-1.1-libstdc++-devel.i686 && \
+    yum clean all
 
-RUN git clone --depth 1 https://github.com/google/protobuf.git
+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"]

+ 6 - 2
protoc-artifacts/README.md

@@ -140,10 +140,14 @@ $ docker build -t protoc-artifacts .
 
 To run the image:
 ```
-$ docker run -it --rm=true protoc-artifacts
+$ docker run -it --rm=true protoc-artifacts bash
 ```
 
-The Protobuf repository has been cloned into ``/protobuf``.
+To checkout protobuf (run within the container):
+```
+$ # Replace v3.5.1 with the version you want
+$ wget -O - https://github.com/google/protobuf/archive/v3.5.1.tar.gz | tar xvzp
+```
 
 ### Tips for deploying on Windows
 Under Windows the following error may occur: ``gpg: cannot open tty `no tty':

+ 13 - 0
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 "$@")"