├── .gitignore ├── LICENSE ├── README.md ├── android-sdk ├── Dockerfile ├── README.md ├── r24.4.1 │ └── Dockerfile ├── r26.0.2 │ └── Dockerfile ├── r28.0.3 │ └── Dockerfile ├── r29.0.2 │ └── Dockerfile ├── r30.0.3 │ ├── Dockerfile │ └── README.md ├── r32.0.0 │ ├── Dockerfile │ └── README.md ├── r33.0.2 │ ├── Dockerfile │ └── README.md └── r34.0.0 │ ├── Dockerfile │ └── README.md ├── ant ├── 1.10.1 │ ├── Dockerfile │ └── README.md ├── 1.9.4 │ └── Dockerfile ├── 1.9.5 │ └── Dockerfile └── 1.9.6 │ └── Dockerfile ├── bundletool └── 1.7.0 │ └── Dockerfile ├── cassandra └── 2.2.8 │ ├── Dockerfile │ ├── README.md │ └── prometheus-config.yml ├── cordova ├── 3.5.0-0.2.7 │ └── Dockerfile ├── 3.6.3-0.2.13 │ └── Dockerfile ├── 4.0.1 │ └── Dockerfile ├── 4.1.0 │ └── Dockerfile ├── 4.1.1 │ └── Dockerfile ├── 4.1.2 │ └── Dockerfile ├── 4.2.0 │ └── Dockerfile └── 4.3.0 │ ├── Dockerfile │ └── README.md ├── gitblit ├── 1.9.1-vanilla │ └── README.md └── 1.9.1 │ ├── Dockerfile │ └── README.md ├── groovy ├── 2.3.10 │ └── Dockerfile ├── 2.3.11 │ └── Dockerfile ├── 2.3.7 │ └── Dockerfile ├── 2.3.8 │ └── Dockerfile ├── 2.3.9 │ └── Dockerfile ├── 2.4.0 │ └── Dockerfile ├── 2.4.1 │ └── Dockerfile ├── 2.4.2 │ └── Dockerfile ├── 2.4.3 │ └── Dockerfile ├── 2.4.4 │ ├── Dockerfile │ └── README.md ├── 2.4.4_java8 │ └── Dockerfile └── 2.5.15_java-8 │ ├── Dockerfile │ └── README.md ├── gvm ├── Dockerfile └── README.md ├── httpd-with-aws-cli ├── 2.4.23 │ └── Dockerfile └── 2.4.25 │ ├── Dockerfile │ └── README.md ├── httpd-with-curl ├── 2.4.23 │ └── Dockerfile └── 2.4.29 │ ├── Dockerfile │ └── README.md ├── java-with-aws-cli └── 8 │ ├── Dockerfile │ └── README.md ├── java ├── 7 │ └── Dockerfile ├── 8 │ ├── Dockerfile │ └── README.md ├── openjdk-11 │ ├── Dockerfile │ └── README.md ├── openjdk-17 │ ├── Dockerfile │ └── README.md └── openjdk-8 │ ├── Dockerfile │ └── README.md ├── mongo-replicaset ├── 3.2.11 │ ├── Dockerfile │ ├── backup.sh │ ├── rs-init.sh │ ├── rs-reconfig.sh │ └── rs-status.sh └── 3.2.11b │ ├── Dockerfile │ ├── README.md │ ├── backup.sh │ ├── mongo-cluster-entrypoint.sh │ ├── rs-init.sh │ ├── rs-reconfig.sh │ └── rs-status.sh ├── mosquitto-exporter └── 1.0 │ ├── Dockerfile │ └── mosquitto-exporter-semioty-1.0.jar ├── mosquitto-with-auth-plugin-and-web-socket ├── v1.4.14 │ ├── Dockerfile │ ├── mosquitto.conf │ └── run.sh ├── v1.6.7 │ ├── Dockerfile │ ├── README.md │ ├── mosquitto.conf │ └── run.sh ├── v1.6.7b │ ├── Dockerfile │ ├── README.md │ ├── mosquitto.conf │ └── run.sh ├── v1.6.8 │ ├── Dockerfile │ ├── README.md │ ├── mosquitto.conf │ └── run.sh ├── v1.6.8b │ ├── Dockerfile │ ├── README.md │ ├── mosquitto.conf │ └── run.sh ├── v1.6.9 │ ├── Dockerfile │ ├── README.md │ ├── mosquitto.conf │ └── run.sh └── v1.6.9b │ ├── Dockerfile │ ├── README.md │ ├── mosquitto.conf │ └── run.sh ├── mosquitto-with-auth-plugin └── v1.4.14 │ ├── Dockerfile │ ├── README.md │ ├── mosquitto.conf │ └── run.sh ├── mosquitto-with-aws-cli ├── v1.4.10 │ └── Dockerfile ├── v1.4.12 │ └── Dockerfile └── v1.4.14 │ ├── Dockerfile │ └── README.md ├── node-exporter └── v0.13.0 │ ├── Dockerfile │ ├── README.md │ └── docker-entrypoint.sh ├── nodejs-http-server └── 0.9.0 │ ├── Dockerfile │ └── README.md ├── nodejs-with-android-sdk ├── 0.10.33 │ └── Dockerfile ├── 0.10.36 │ └── Dockerfile ├── 10.14.0 │ ├── Dockerfile │ └── README.md ├── 12.13.1 │ ├── Dockerfile │ └── README.md ├── 14_sdk-30 │ ├── Dockerfile │ └── README.md ├── 14_sdk-32 │ ├── Dockerfile │ └── README.md ├── 16_sdk-33 │ ├── Dockerfile │ └── README.md ├── 16_sdk-34 │ ├── Dockerfile │ └── README.md ├── 4.4.1 │ └── Dockerfile ├── 6.9.5 │ └── Dockerfile └── 8.9.4 │ ├── Dockerfile │ └── README.md ├── phonegap ├── 3.5.0-0.21.18 │ └── Dockerfile ├── 3.6.0-0.21.19 │ └── Dockerfile ├── 3.6.3-0.22.7 │ └── Dockerfile ├── 4.0.0-0.22.7 │ └── Dockerfile ├── 4.1.2-0.22.12 │ └── Dockerfile ├── 4.2.0-0.24.2 │ └── Dockerfile ├── 6.0.3 │ └── Dockerfile ├── 6.1.0 │ └── Dockerfile ├── 6.2.0 │ └── Dockerfile ├── 6.2.2 │ └── Dockerfile ├── 6.2.2_java8 │ └── Dockerfile ├── 7.1.1 │ ├── Dockerfile │ ├── README.md │ └── init.gradle ├── 7.1.1_android-30 │ ├── Dockerfile │ ├── README.md │ └── init.gradle ├── 7.1.1_android-32 │ ├── Dockerfile │ ├── README.md │ └── init.gradle ├── 7.1.1_android-33 │ ├── Dockerfile │ ├── README.md │ └── init.gradle ├── 7.1.1_android-34 │ ├── Dockerfile │ ├── README.md │ └── init.gradle ├── 7.1.1_android-8.0.0 │ ├── Dockerfile │ ├── README.md │ └── init.gradle ├── 7.1.1_android-8.1.0 │ ├── Dockerfile │ ├── README.md │ └── init.gradle ├── 7.1.1_android-9.0.0 │ ├── Dockerfile │ ├── README.md │ └── init.gradle ├── 9.0.0 │ ├── Dockerfile │ ├── README.md │ └── init.gradle ├── 9.0.0_android-30 │ ├── Dockerfile │ ├── README.md │ └── init.gradle ├── 9.0.0_android-32 │ ├── Dockerfile │ ├── README.md │ └── init.gradle ├── 9.0.0_android-33 │ ├── Dockerfile │ ├── README.md │ └── init.gradle └── 9.0.0_android-34 │ ├── Dockerfile │ ├── README.md │ └── init.gradle ├── postgresql-with-plperl └── 8.4 │ ├── Dockerfile │ └── README.md ├── rabbitmq-cluster ├── 3.6.15 │ ├── Dockerfile │ ├── README.md │ ├── rabbitmq-cluster-entrypoint.sh │ └── rabbitmq.config ├── 3.6.6 │ ├── Dockerfile │ └── rabbitmq-cluster-entrypoint.sh ├── 3.7.18 │ ├── Dockerfile │ ├── rabbitmq-cluster-entrypoint.sh │ └── rabbitmq.config ├── 3.8.0 │ ├── Dockerfile │ ├── README.md │ ├── rabbitmq-cluster-entrypoint.sh │ └── rabbitmq.config ├── 3.8.1-beta.1-alpine │ ├── Dockerfile │ ├── rabbitmq-cluster-entrypoint.sh │ └── rabbitmq.config ├── 3.8.1-beta.1 │ ├── Dockerfile │ ├── rabbitmq-cluster-entrypoint.sh │ └── rabbitmq.config └── 3.8.1 │ ├── Dockerfile │ ├── rabbitmq-cluster-entrypoint.sh │ └── rabbitmq.config ├── redis-sentinel ├── 3.2.6 │ ├── Dockerfile │ ├── redis-sentinel-entrypoint.sh │ └── sentinel.conf └── 3.2.6b │ ├── Dockerfile │ ├── README.md │ ├── redis-sentinel-entrypoint.sh │ └── sentinel.conf ├── redis ├── 3.2.6b │ ├── Dockerfile │ ├── README.md │ ├── entrypoint.sh │ └── redis.conf └── 3.2.6c │ ├── Dockerfile │ ├── README.md │ ├── entrypoint.sh │ └── redis.conf └── rsyslog-docker └── 8.18 ├── Dockerfile ├── README.md ├── docker-compose.yml ├── entrypoint.sh ├── etc ├── logrotate.conf └── rsyslog.conf ├── rsyslog.d └── docker-logs.conf └── run-logrotate /.gitignore: -------------------------------------------------------------------------------- 1 | /.project 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Docker Images 2 | ================= 3 | [Docker](https://www.docker.com/) images mantained by [WebRatio] (https://www.webratio.com) -------------------------------------------------------------------------------- /android-sdk/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/ant 2 | 3 | # Installs i386 architecture required for running 32 bit Android tools 4 | RUN dpkg --add-architecture i386 && \ 5 | apt-get update -y && \ 6 | apt-get install -y libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 && \ 7 | rm -rf /var/lib/apt/lists/* && \ 8 | apt-get autoremove -y && \ 9 | apt-get clean 10 | 11 | # Installs Android SDK 12 | ENV ANDROID_SDK_FILENAME android-sdk_r23.0.2-linux.tgz 13 | ENV ANDROID_SDK_URL http://dl.google.com/android/${ANDROID_SDK_FILENAME} 14 | ENV ANDROID_API_LEVELS android-15,android-16,android-17,android-18,android-19,android-20,android-21 15 | ENV ANDROID_BUILD_TOOLS_VERSION 21.1.0 16 | ENV ANDROID_HOME /opt/android-sdk-linux 17 | ENV PATH ${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools 18 | RUN cd /opt && \ 19 | wget -q ${ANDROID_SDK_URL} && \ 20 | tar -xzf ${ANDROID_SDK_FILENAME} && \ 21 | rm ${ANDROID_SDK_FILENAME} && \ 22 | echo y | android update sdk --no-ui -a --filter tools,platform-tools,${ANDROID_API_LEVELS},build-tools-${ANDROID_BUILD_TOOLS_VERSION} 23 | -------------------------------------------------------------------------------- /android-sdk/README.md: -------------------------------------------------------------------------------- 1 | ## Gitblit Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Android SDK](https://developer.android.com/sdk/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/android-sdk/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/android-sdk` -------------------------------------------------------------------------------- /android-sdk/r24.4.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/ant 2 | 3 | ENV ANDROID_SDK_VERSION r24.4.1 4 | ENV ANDROID_BUILD_TOOLS_VERSION 23.0.2 5 | 6 | # Installs i386 architecture required for running 32 bit Android tools 7 | RUN dpkg --add-architecture i386 && \ 8 | apt-get update -y && \ 9 | apt-get install -y libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 && \ 10 | rm -rf /var/lib/apt/lists/* && \ 11 | apt-get autoremove -y && \ 12 | apt-get clean 13 | 14 | # Installs Android SDK 15 | ENV ANDROID_SDK_FILENAME android-sdk_${ANDROID_SDK_VERSION}-linux.tgz 16 | ENV ANDROID_SDK_URL http://dl.google.com/android/${ANDROID_SDK_FILENAME} 17 | ENV ANDROID_API_LEVELS android-15,android-16,android-17,android-18,android-19,android-20,android-21,android-22,android-23 18 | ENV ANDROID_HOME /opt/android-sdk-linux 19 | ENV PATH ${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools 20 | RUN cd /opt && \ 21 | wget -q ${ANDROID_SDK_URL} && \ 22 | tar -xzf ${ANDROID_SDK_FILENAME} && \ 23 | rm ${ANDROID_SDK_FILENAME} && \ 24 | echo y | android update sdk --no-ui -a --filter tools,platform-tools,${ANDROID_API_LEVELS},build-tools-${ANDROID_BUILD_TOOLS_VERSION},extra-android-m2repository,extra-android-support -------------------------------------------------------------------------------- /android-sdk/r26.0.2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/ant:1.10.1 2 | 3 | # r26.0.2 4 | ENV ANDROID_SDK_VERSION 3859397 5 | ENV ANDROID_BUILD_TOOLS_VERSION 27.0.3 6 | 7 | # Installs i386 architecture required for running 32 bit Android tools 8 | RUN dpkg --add-architecture i386 && \ 9 | apt-get update -y && \ 10 | apt-get install -y libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 unzip && \ 11 | rm -rf /var/lib/apt/lists/* && \ 12 | apt-get autoremove -y && \ 13 | apt-get clean 14 | 15 | # Installs Android SDK 16 | ENV ANDROID_SDK_FILENAME sdk-tools-linux-${ANDROID_SDK_VERSION}.zip 17 | ENV ANDROID_SDK_URL https://dl.google.com/android/repository/${ANDROID_SDK_FILENAME} 18 | ENV ANDROID_API_LEVELS android-15,android-16,android-17,android-18,android-19,android-20,android-21,android-22,android-23,android-24,android-25,android-26,android-27 19 | ENV ANDROID_HOME /opt/sdk 20 | ENV PATH ${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools 21 | RUN mkdir -p /opt/sdk && \ 22 | cd /opt && \ 23 | wget -q ${ANDROID_SDK_URL} && \ 24 | unzip ${ANDROID_SDK_FILENAME} -d ${ANDROID_HOME} && \ 25 | rm ${ANDROID_SDK_FILENAME} && \ 26 | yes | android update sdk --no-ui -a --filter tools,platform-tools,${ANDROID_API_LEVELS},build-tools-${ANDROID_BUILD_TOOLS_VERSION} -------------------------------------------------------------------------------- /android-sdk/r28.0.3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/ant:1.10.1 2 | 3 | # r28.0.3 4 | ENV ANDROID_SDK_VERSION 4333796 5 | ENV ANDROID_BUILD_TOOLS_VERSION 28.0.3 6 | 7 | # Installs i386 architecture required for running 32 bit Android tools 8 | RUN dpkg --add-architecture i386 && \ 9 | apt-get update -y && \ 10 | apt-get install -y libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 unzip && \ 11 | rm -rf /var/lib/apt/lists/* && \ 12 | apt-get autoremove -y && \ 13 | apt-get clean 14 | 15 | # Installs Android SDK 16 | ENV ANDROID_SDK_FILENAME sdk-tools-linux-${ANDROID_SDK_VERSION}.zip 17 | ENV ANDROID_SDK_URL https://dl.google.com/android/repository/${ANDROID_SDK_FILENAME} 18 | ENV ANDROID_API_LEVELS "platforms;android-15" "platforms;android-16" "platforms;android-17" "platforms;android-18" "platforms;android-19" "platforms;android-20" "platforms;android-21" "platforms;android-22" "platforms;android-23" "platforms;android-24" "platforms;android-25" "platforms;android-26" "platforms;android-27" "platforms;android-28" 19 | ENV ANDROID_HOME /opt/sdk 20 | ENV PATH ${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools 21 | RUN mkdir -p /opt/sdk && \ 22 | cd /opt && \ 23 | wget -q ${ANDROID_SDK_URL} && \ 24 | unzip ${ANDROID_SDK_FILENAME} -d ${ANDROID_HOME} && \ 25 | rm ${ANDROID_SDK_FILENAME} && \ 26 | yes | sdkmanager "tools" "platform-tools" ${ANDROID_API_LEVELS} "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" -------------------------------------------------------------------------------- /android-sdk/r29.0.2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/ant:1.10.1 2 | 3 | # r29.0.2 4 | ENV ANDROID_SDK_VERSION 4333796 5 | ENV ANDROID_BUILD_TOOLS_VERSION 29.0.2 6 | 7 | # Installs i386 architecture required for running 32 bit Android tools 8 | RUN dpkg --add-architecture i386 && \ 9 | apt-get update -y && \ 10 | apt-get install -y libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 unzip && \ 11 | rm -rf /var/lib/apt/lists/* && \ 12 | apt-get autoremove -y && \ 13 | apt-get clean 14 | 15 | # Installs Android SDK 16 | ENV ANDROID_SDK_FILENAME sdk-tools-linux-${ANDROID_SDK_VERSION}.zip 17 | ENV ANDROID_SDK_URL https://dl.google.com/android/repository/${ANDROID_SDK_FILENAME} 18 | ENV ANDROID_API_LEVELS "platforms;android-15" "platforms;android-16" "platforms;android-17" "platforms;android-18" "platforms;android-19" "platforms;android-20" "platforms;android-21" "platforms;android-22" "platforms;android-23" "platforms;android-24" "platforms;android-25" "platforms;android-26" "platforms;android-27" "platforms;android-28" "platforms;android-29" 19 | ENV ANDROID_HOME /opt/sdk 20 | ENV PATH ${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools 21 | RUN mkdir -p /opt/sdk && \ 22 | cd /opt && \ 23 | wget -q ${ANDROID_SDK_URL} && \ 24 | unzip ${ANDROID_SDK_FILENAME} -d ${ANDROID_HOME} && \ 25 | rm ${ANDROID_SDK_FILENAME} && \ 26 | yes | sdkmanager "tools" "platform-tools" ${ANDROID_API_LEVELS} "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" -------------------------------------------------------------------------------- /android-sdk/r30.0.3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/ant:1.10.1 2 | 3 | # r30.0.3 4 | ENV ANDROID_SDK_VERSION 7583922 5 | ENV ANDROID_BUILD_TOOLS_VERSION 30.0.3 6 | 7 | # Installs i386 architecture required for running 32 bit Android tools 8 | RUN dpkg --add-architecture i386 && \ 9 | apt-get update -y && \ 10 | apt-get install -y libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 unzip && \ 11 | rm -rf /var/lib/apt/lists/* && \ 12 | apt-get autoremove -y && \ 13 | apt-get clean 14 | 15 | # Installs Android SDK 16 | ENV ANDROID_SDK_FILENAME commandlinetools-linux-${ANDROID_SDK_VERSION}_latest.zip 17 | ENV ANDROID_SDK_URL https://dl.google.com/android/repository/${ANDROID_SDK_FILENAME} 18 | ENV ANDROID_API_LEVELS "platforms;android-19" "platforms;android-20" "platforms;android-21" "platforms;android-22" "platforms;android-23" "platforms;android-24" "platforms;android-25" "platforms;android-26" "platforms;android-27" "platforms;android-28" "platforms;android-29" "platforms;android-30" 19 | ENV ANDROID_HOME /opt/sdk 20 | ENV PATH ${PATH}:${ANDROID_HOME}/cmdline-tools:${ANDROID_HOME}/cmdline-tools/bin:${ANDROID_HOME}/platform-tools 21 | RUN mkdir -p /opt/sdk && \ 22 | cd /opt && \ 23 | wget -q ${ANDROID_SDK_URL} && \ 24 | unzip ${ANDROID_SDK_FILENAME} -d ${ANDROID_HOME} && \ 25 | rm ${ANDROID_SDK_FILENAME} && \ 26 | yes | sdkmanager "--sdk_root=$ANDROID_HOME" "tools" "platform-tools" ${ANDROID_API_LEVELS} "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" 27 | -------------------------------------------------------------------------------- /android-sdk/r30.0.3/README.md: -------------------------------------------------------------------------------- 1 | ## Android SDK Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Android SDK](https://developer.android.com/sdk/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/android-sdk/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/android-sdk` 11 | -------------------------------------------------------------------------------- /android-sdk/r32.0.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/java:openjdk-11 2 | 3 | # r30.0.3 4 | ENV ANDROID_SDK_VERSION 8512546 5 | ENV ANDROID_BUILD_TOOLS_VERSION 32.0.0 6 | 7 | # Installs misc dependencies, then installs i386 architecture required for running 32 bit Android tools 8 | RUN dpkg --add-architecture i386 && \ 9 | apt-get update -y && \ 10 | apt-get install -y wget && \ 11 | apt-get install -y libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 unzip && \ 12 | rm -rf /var/lib/apt/lists/* && \ 13 | apt-get autoremove -y && \ 14 | apt-get clean 15 | 16 | # Installs Android SDK 17 | ENV ANDROID_SDK_FILENAME commandlinetools-linux-${ANDROID_SDK_VERSION}_latest.zip 18 | ENV ANDROID_SDK_URL https://dl.google.com/android/repository/${ANDROID_SDK_FILENAME} 19 | ENV ANDROID_API_LEVELS "platforms;android-28" "platforms;android-29" "platforms;android-30" "platforms;android-31" "platforms;android-32" 20 | ENV ANDROID_HOME /opt/sdk 21 | ENV PATH ${PATH}:${ANDROID_HOME}/cmdline-tools:${ANDROID_HOME}/cmdline-tools/bin:${ANDROID_HOME}/platform-tools 22 | RUN mkdir -p /opt/sdk && \ 23 | cd /opt && \ 24 | wget -q ${ANDROID_SDK_URL} && \ 25 | unzip ${ANDROID_SDK_FILENAME} -d ${ANDROID_HOME} && \ 26 | rm ${ANDROID_SDK_FILENAME} && \ 27 | yes | sdkmanager "--sdk_root=$ANDROID_HOME" "platform-tools" ${ANDROID_API_LEVELS} "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" 28 | -------------------------------------------------------------------------------- /android-sdk/r32.0.0/README.md: -------------------------------------------------------------------------------- 1 | ## Android SDK Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Android SDK](https://developer.android.com/sdk/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/android-sdk/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/android-sdk` 11 | -------------------------------------------------------------------------------- /android-sdk/r33.0.2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/java:openjdk-11 2 | 3 | # r33.0.2 4 | ENV ANDROID_SDK_VERSION 9477386 5 | ENV ANDROID_BUILD_TOOLS_VERSION 33.0.2 6 | 7 | # Installs misc dependencies, then installs i386 architecture required for running 32 bit Android tools 8 | RUN dpkg --add-architecture i386 && \ 9 | apt-get update -y && \ 10 | apt-get install -y wget && \ 11 | apt-get install -y libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 unzip && \ 12 | rm -rf /var/lib/apt/lists/* && \ 13 | apt-get autoremove -y && \ 14 | apt-get clean 15 | 16 | # Installs Android SDK 17 | ENV ANDROID_SDK_FILENAME commandlinetools-linux-${ANDROID_SDK_VERSION}_latest.zip 18 | ENV ANDROID_SDK_URL https://dl.google.com/android/repository/${ANDROID_SDK_FILENAME} 19 | ENV ANDROID_API_LEVELS "platforms;android-29" "platforms;android-30" "platforms;android-31" "platforms;android-32" "platforms;android-33" 20 | ENV ANDROID_HOME /opt/sdk 21 | ENV PATH ${PATH}:${ANDROID_HOME}/cmdline-tools:${ANDROID_HOME}/cmdline-tools/bin:${ANDROID_HOME}/platform-tools 22 | RUN mkdir -p /opt/sdk && \ 23 | cd /opt && \ 24 | wget -q ${ANDROID_SDK_URL} && \ 25 | unzip ${ANDROID_SDK_FILENAME} -d ${ANDROID_HOME} && \ 26 | rm ${ANDROID_SDK_FILENAME} && \ 27 | yes | sdkmanager "--sdk_root=$ANDROID_HOME" "platform-tools" ${ANDROID_API_LEVELS} "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" 28 | -------------------------------------------------------------------------------- /android-sdk/r33.0.2/README.md: -------------------------------------------------------------------------------- 1 | ## Android SDK Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Android SDK](https://developer.android.com/sdk/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/android-sdk/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/android-sdk` 11 | -------------------------------------------------------------------------------- /android-sdk/r34.0.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/java:openjdk-17 2 | 3 | # r34.0.0 4 | ENV ANDROID_SDK_VERSION 11076708 5 | ENV ANDROID_BUILD_TOOLS_VERSION 34.0.0 6 | 7 | # Installs misc dependencies, then installs i386 architecture required for running 32 bit Android tools 8 | RUN dpkg --add-architecture i386 && \ 9 | apt-get update -y && \ 10 | apt-get install -y wget && \ 11 | apt-get install -y libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 unzip && \ 12 | rm -rf /var/lib/apt/lists/* && \ 13 | apt-get autoremove -y && \ 14 | apt-get clean 15 | 16 | # Installs Android SDK 17 | ENV ANDROID_SDK_FILENAME commandlinetools-linux-${ANDROID_SDK_VERSION}_latest.zip 18 | ENV ANDROID_SDK_URL https://dl.google.com/android/repository/${ANDROID_SDK_FILENAME} 19 | ENV ANDROID_API_LEVELS "platforms;android-30" "platforms;android-31" "platforms;android-32" "platforms;android-33" "platforms;android-34" 20 | ENV ANDROID_HOME /opt/sdk 21 | ENV PATH ${PATH}:${ANDROID_HOME}/cmdline-tools:${ANDROID_HOME}/cmdline-tools/bin:${ANDROID_HOME}/platform-tools 22 | RUN mkdir -p /opt/sdk && \ 23 | cd /opt && \ 24 | wget -q ${ANDROID_SDK_URL} && \ 25 | unzip ${ANDROID_SDK_FILENAME} -d ${ANDROID_HOME} && \ 26 | rm ${ANDROID_SDK_FILENAME} && \ 27 | yes | sdkmanager "--sdk_root=$ANDROID_HOME" "platform-tools" ${ANDROID_API_LEVELS} "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" 28 | -------------------------------------------------------------------------------- /android-sdk/r34.0.0/README.md: -------------------------------------------------------------------------------- 1 | ## Android SDK Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Android SDK](https://developer.android.com/sdk/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/android-sdk/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/android-sdk` 11 | -------------------------------------------------------------------------------- /ant/1.10.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/java:8 2 | 3 | # Installs Ant 4 | ENV ANT_VERSION 1.10.1 5 | RUN cd && \ 6 | wget -q http://www.us.apache.org/dist//ant/binaries/apache-ant-${ANT_VERSION}-bin.tar.gz && \ 7 | tar -xzf apache-ant-${ANT_VERSION}-bin.tar.gz && \ 8 | mv apache-ant-${ANT_VERSION} /opt/ant && \ 9 | rm apache-ant-${ANT_VERSION}-bin.tar.gz 10 | ENV ANT_HOME /opt/ant 11 | ENV PATH ${PATH}:/opt/ant/bin -------------------------------------------------------------------------------- /ant/1.10.1/README.md: -------------------------------------------------------------------------------- 1 | ## Gitblit Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Apache Ant](http://ant.apache.org/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/ant/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/ant` 11 | * `docker pull webratio/ant:1.9.4` 12 | * `docker pull webratio/ant:1.9.5` 13 | * `docker pull webratio/ant:1.9.6` 14 | * `docker pull webratio/ant:1.10.1` 15 | -------------------------------------------------------------------------------- /ant/1.9.4/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/java:7 2 | 3 | # Installs Ant 4 | ENV ANT_VERSION 1.9.4 5 | RUN cd && \ 6 | wget -q http://archive.apache.org/dist/ant/binaries/apache-ant-${ANT_VERSION}-bin.tar.gz && \ 7 | tar -xzf apache-ant-${ANT_VERSION}-bin.tar.gz && \ 8 | mv apache-ant-${ANT_VERSION} /opt/ant && \ 9 | rm apache-ant-${ANT_VERSION}-bin.tar.gz 10 | ENV ANT_HOME /opt/ant 11 | ENV PATH ${PATH}:/opt/ant/bin -------------------------------------------------------------------------------- /ant/1.9.5/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/java:7 2 | 3 | # Installs Ant 4 | ENV ANT_VERSION 1.9.5 5 | RUN cd && \ 6 | wget -q http://www.us.apache.org/dist//ant/binaries/apache-ant-${ANT_VERSION}-bin.tar.gz && \ 7 | tar -xzf apache-ant-${ANT_VERSION}-bin.tar.gz && \ 8 | mv apache-ant-${ANT_VERSION} /opt/ant && \ 9 | rm apache-ant-${ANT_VERSION}-bin.tar.gz 10 | ENV ANT_HOME /opt/ant 11 | ENV PATH ${PATH}:/opt/ant/bin -------------------------------------------------------------------------------- /ant/1.9.6/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/java:7 2 | 3 | # Installs Ant 4 | ENV ANT_VERSION 1.9.6 5 | RUN cd && \ 6 | wget -q http://www.us.apache.org/dist//ant/binaries/apache-ant-${ANT_VERSION}-bin.tar.gz && \ 7 | tar -xzf apache-ant-${ANT_VERSION}-bin.tar.gz && \ 8 | mv apache-ant-${ANT_VERSION} /opt/ant && \ 9 | rm apache-ant-${ANT_VERSION}-bin.tar.gz 10 | ENV ANT_HOME /opt/ant 11 | ENV PATH ${PATH}:/opt/ant/bin -------------------------------------------------------------------------------- /bundletool/1.7.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/java:8 2 | 3 | # Version 4 | ENV BUNDLETOOL_VERSION 1.7.0 5 | 6 | # Install misc tools 7 | RUN apt-get install unzip 8 | 9 | # Install bundletool 10 | ENV BUNDLETOOL_FILENAME bundletool-all-${BUNDLETOOL_VERSION}.jar 11 | ENV BUNDLETOOL_URL https://github.com/google/bundletool/releases/download/${BUNDLETOOL_VERSION}/${BUNDLETOOL_FILENAME} 12 | ENV PATH ${PATH}:/opt/bundletool 13 | RUN mkdir -p /opt/bundletool && \ 14 | cd /opt/bundletool && \ 15 | wget -nv ${BUNDLETOOL_URL} && \ 16 | echo '#!/bin/sh' > bundletool && \ 17 | echo 'java -jar /opt/bundletool/${BUNDLETOOL_FILENAME} "$@"' >> bundletool && \ 18 | chmod +x bundletool 19 | -------------------------------------------------------------------------------- /cassandra/2.2.8/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM cassandra:2.2.8 2 | 3 | RUN apt-get update -y && \ 4 | apt-get install -y curl && \ 5 | apt-get autoremove --purge -y && \ 6 | apt-get clean && \ 7 | rm -rf /var/lib/apt/lists/* 8 | 9 | ADD http://central.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.6/jmx_prometheus_javaagent-0.6.jar /usr/app/jmx_prometheus_javaagent.jar 10 | ADD prometheus-config.yml /usr/app/prometheus-config.yml 11 | RUN chmod +r /usr/app/jmx_prometheus_javaagent.jar && \ 12 | echo 'JVM_OPTS="$JVM_OPTS -javaagent:/usr/app/jmx_prometheus_javaagent.jar=${PROMETHEUS_PORT:-31500}:/usr/app/prometheus-config.yml"' >> $CASSANDRA_CONFIG/cassandra-env.sh 13 | -------------------------------------------------------------------------------- /cassandra/2.2.8/README.md: -------------------------------------------------------------------------------- 1 | ## Cassandra Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Cassandra](https://cassandra.apache.org/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/cassandra/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/cassandra:2.2.8` -------------------------------------------------------------------------------- /cassandra/2.2.8/prometheus-config.yml: -------------------------------------------------------------------------------- 1 | --- 2 | lowercaseOutputLabelNames: true 3 | lowercaseOutputName: true 4 | rules: 5 | - pattern: org.apache.cassandra.metrics<>(Count|Value) 6 | name: cassandra_$1_$3 7 | labels: 8 | address: "$2" 9 | - pattern: org.apache.cassandra.metrics<>(Count|Value) 11 | name: cassandra_$1_$5 12 | labels: 13 | "$1": "$4" 14 | "$2": "$3" -------------------------------------------------------------------------------- /cordova/3.5.0-0.2.7/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk 2 | 3 | # Installs Cordova 4 | # Forces a platform add in order to preload libraries 5 | ENV CORDOVA_VERSION 3.5.0-0.2.7 6 | RUN npm install -g npm && \ 7 | npm install -g cordova@${CORDOVA_VERSION} && \ 8 | cd /tmp && \ 9 | cordova create fakeapp && \ 10 | cd /tmp/fakeapp && \ 11 | cordova platform add android && \ 12 | cd && \ 13 | rm -rf /tmp/fakeapp 14 | 15 | VOLUME ["/data"] 16 | WORKDIR /data 17 | 18 | EXPOSE 8000 -------------------------------------------------------------------------------- /cordova/3.6.3-0.2.13/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk 2 | 3 | # Installs Cordova 4 | # Forces a platform add in order to preload libraries 5 | ENV CORDOVA_VERSION 3.6.3-0.2.13 6 | RUN npm install -g npm && \ 7 | npm install -g cordova@${CORDOVA_VERSION} && \ 8 | cd /tmp && \ 9 | cordova create fakeapp && \ 10 | cd /tmp/fakeapp && \ 11 | cordova platform add android && \ 12 | cd && \ 13 | rm -rf /tmp/fakeapp 14 | 15 | VOLUME ["/data"] 16 | WORKDIR /data 17 | 18 | EXPOSE 8000 -------------------------------------------------------------------------------- /cordova/4.0.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk 2 | 3 | # Installs Cordova 4 | # Forces a platform add in order to preload libraries 5 | ENV CORDOVA_VERSION 4.0.1 6 | RUN npm install -g npm && \ 7 | npm install -g cordova@${CORDOVA_VERSION} && \ 8 | cd /tmp && \ 9 | cordova create fakeapp && \ 10 | cd /tmp/fakeapp && \ 11 | cordova platform add android && \ 12 | cd && \ 13 | rm -rf /tmp/fakeapp 14 | 15 | VOLUME ["/data"] 16 | WORKDIR /data 17 | 18 | EXPOSE 8000 -------------------------------------------------------------------------------- /cordova/4.1.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk 2 | 3 | # Installs Cordova 4 | # Forces a platform add in order to preload libraries 5 | ENV CORDOVA_VERSION 4.1.0 6 | RUN npm install -g npm && \ 7 | npm install -g cordova@${CORDOVA_VERSION} && \ 8 | cd /tmp && \ 9 | cordova create fakeapp && \ 10 | cd /tmp/fakeapp && \ 11 | cordova platform add android && \ 12 | cd && \ 13 | rm -rf /tmp/fakeapp 14 | 15 | VOLUME ["/data"] 16 | WORKDIR /data 17 | 18 | EXPOSE 8000 -------------------------------------------------------------------------------- /cordova/4.1.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk 2 | 3 | # Installs Cordova 4 | # Forces a platform add in order to preload libraries 5 | ENV CORDOVA_VERSION 4.1.1 6 | RUN npm install -g npm && \ 7 | npm install -g cordova@${CORDOVA_VERSION} && \ 8 | cd /tmp && \ 9 | cordova create fakeapp && \ 10 | cd /tmp/fakeapp && \ 11 | cordova platform add android && \ 12 | cd && \ 13 | rm -rf /tmp/fakeapp 14 | 15 | VOLUME ["/data"] 16 | WORKDIR /data 17 | 18 | EXPOSE 8000 -------------------------------------------------------------------------------- /cordova/4.1.2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk 2 | 3 | # Installs Cordova 4 | # Forces a platform add in order to preload libraries 5 | ENV CORDOVA_VERSION 4.1.2 6 | RUN npm install -g npm && \ 7 | npm install -g cordova@${CORDOVA_VERSION} && \ 8 | cd /tmp && \ 9 | cordova create fakeapp && \ 10 | cd /tmp/fakeapp && \ 11 | cordova platform add android && \ 12 | cd && \ 13 | rm -rf /tmp/fakeapp 14 | 15 | VOLUME ["/data"] 16 | WORKDIR /data 17 | 18 | EXPOSE 8000 -------------------------------------------------------------------------------- /cordova/4.2.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk 2 | 3 | # Installs Cordova 4 | # Forces a platform add in order to preload libraries 5 | ENV CORDOVA_VERSION 4.2.0 6 | RUN npm install -g npm && \ 7 | npm install -g cordova@${CORDOVA_VERSION} && \ 8 | cd /tmp && \ 9 | cordova create fakeapp && \ 10 | cd /tmp/fakeapp && \ 11 | cordova platform add android && \ 12 | cd && \ 13 | rm -rf /tmp/fakeapp 14 | 15 | VOLUME ["/data"] 16 | WORKDIR /data 17 | 18 | EXPOSE 8000 -------------------------------------------------------------------------------- /cordova/4.3.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk 2 | 3 | # Installs Cordova 4 | # Forces a platform add in order to preload libraries 5 | ENV CORDOVA_VERSION 4.3.0 6 | RUN npm install -g npm && \ 7 | npm install -g cordova@${CORDOVA_VERSION} && \ 8 | cd /tmp && \ 9 | cordova create fakeapp && \ 10 | cd /tmp/fakeapp && \ 11 | cordova platform add android && \ 12 | cd && \ 13 | rm -rf /tmp/fakeapp 14 | 15 | VOLUME ["/data"] 16 | WORKDIR /data 17 | 18 | EXPOSE 8000 -------------------------------------------------------------------------------- /cordova/4.3.0/README.md: -------------------------------------------------------------------------------- 1 | ## Cordova Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Cordova](http://cordova.apache.org/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/cordova/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/cordova` 11 | * `docker pull webratio/cordova:3.5` 12 | * `docker pull webratio/cordova:3.5.0-0.2.7` 13 | * `docker pull webratio/cordova:3.6` 14 | * `docker pull webratio/cordova:3.6.3-0.2.13` 15 | * `docker pull webratio/cordova:4.0` 16 | * `docker pull webratio/cordova:4.0.1` 17 | * `docker pull webratio/cordova:4.1` 18 | * `docker pull webratio/cordova:4.1.0` 19 | * `docker pull webratio/cordova:4.1.1` 20 | * `docker pull webratio/cordova:4.1.2` 21 | * `docker pull webratio/cordova:4.2` 22 | * `docker pull webratio/cordova:4.2.0` 23 | * `docker pull webratio/cordova:4.3` 24 | * `docker pull webratio/cordova:4.3.0` 25 | 26 | ### Usage 27 | 28 | #### Run `cordova create` 29 | 30 | docker run -v :/data webratio/cordova cordova create 31 | 32 | #### Run `cordova platform add android` 33 | 34 | docker run -v :/data webratio/cordova cordova platform add android 35 | 36 | #### Run `cordova serve` 37 | 38 | docker run -v :/data webratio/cordova cordova serve 39 | 40 | #### Run `cordova build android` 41 | 42 | docker run -v :/data webratio/cordova cordova build android 43 | 44 | -------------------------------------------------------------------------------- /gitblit/1.9.1-vanilla/README.md: -------------------------------------------------------------------------------- 1 | ## Gitblit Image Build 2 | 3 | This repository is a placeholder with instructions for re-building the `gitblit/gitblit` image of [Gitblit](http://gitblit.com/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/phonegap/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | Rebuilding is necessary for supporting architectures beyond `amd64`. 6 | 7 | ### Instructions 8 | 9 | docker buildx build --platform linux/amd64,linux/arm64/v8 --tag webratio/gitblit:1.9.1-vanilla --push https://github.com/gitblit/gitblit-docker.git#v1.9.1-1 10 | 11 | -------------------------------------------------------------------------------- /gitblit/1.9.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/gitblit:1.9.1-vanilla 2 | 3 | # Update JNA to support arm64 (aka aarch64) 4 | RUN rm /opt/gitblit/ext/jna-*.jar \ 5 | && wget -O /opt/gitblit/ext/jna-4.5.2.jar https://repo1.maven.org/maven2/net/java/dev/jna/jna/4.5.2/jna-4.5.2.jar \ 6 | && wget -O /opt/gitblit/ext/jna-platform-4.5.2.jar https://repo1.maven.org/maven2/net/java/dev/jna/jna-platform/4.5.2/jna-platform-4.5.2.jar 7 | 8 | # Disables the HTTPS, use 80 for HTTP, enable RPC interface 9 | RUN echo \ 10 | server.httpPort = 80 \\n\ 11 | server.httpsPort = 0 \\n\ 12 | server.redirectToHttpsPort = false \\n\ 13 | web.enableRpcServlet = true \\n\ 14 | web.enableRpcManagement = true \\n\ 15 | web.enableRpcAdministration = true \\n\ 16 | >> /var/opt/gitblit/etc/gitblit.properties 17 | 18 | # Expose ports for --link 19 | EXPOSE 80 20 | 21 | -------------------------------------------------------------------------------- /gitblit/1.9.1/README.md: -------------------------------------------------------------------------------- 1 | ## Gitblit Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Gitblit](http://gitblit.com/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/phonegap/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/gitblit` 11 | 12 | ### Usage 13 | 14 | docker run -d -p 80:80 -p 9418:9418 -p 29418:29418 webratio/gitblit 15 | -------------------------------------------------------------------------------- /groovy/2.3.10/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/gvm 2 | 3 | # Defines environment variables 4 | ENV GROOVY_VERSION 2.3.10 5 | 6 | # Installs Groovy 7 | RUN /bin/bash -c "source /root/.gvm/bin/gvm-init.sh && gvm install groovy ${GROOVY_VERSION}" 8 | ENV GROOVY_HOME /root/.gvm/groovy/current 9 | ENV PATH $GROOVY_HOME/bin:$PATH 10 | 11 | WORKDIR /source 12 | ENTRYPOINT ["groovy", "-Dgrape.root=/graperoot"] -------------------------------------------------------------------------------- /groovy/2.3.11/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/gvm 2 | 3 | # Defines environment variables 4 | ENV GROOVY_VERSION 2.3.11 5 | 6 | # Installs Groovy 7 | RUN /bin/bash -c "source /root/.gvm/bin/gvm-init.sh && gvm install groovy ${GROOVY_VERSION}" 8 | ENV GROOVY_HOME /root/.gvm/groovy/current 9 | ENV PATH $GROOVY_HOME/bin:$PATH 10 | 11 | WORKDIR /source 12 | ENTRYPOINT ["groovy", "-Dgrape.root=/graperoot"] -------------------------------------------------------------------------------- /groovy/2.3.7/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/gvm 2 | 3 | # Defines environment variables 4 | ENV GROOVY_VERSION 2.3.7 5 | 6 | # Installs Groovy 7 | RUN /bin/bash -c "source /root/.gvm/bin/gvm-init.sh && gvm install groovy ${GROOVY_VERSION}" 8 | ENV GROOVY_HOME /root/.gvm/groovy/current 9 | ENV PATH $GROOVY_HOME/bin:$PATH 10 | 11 | WORKDIR /source 12 | ENTRYPOINT ["groovy", "-Dgrape.root=/graperoot"] -------------------------------------------------------------------------------- /groovy/2.3.8/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/gvm 2 | 3 | # Defines environment variables 4 | ENV GROOVY_VERSION 2.3.8 5 | 6 | # Installs Groovy 7 | RUN /bin/bash -c "source /root/.gvm/bin/gvm-init.sh && gvm install groovy ${GROOVY_VERSION}" 8 | ENV GROOVY_HOME /root/.gvm/groovy/current 9 | ENV PATH $GROOVY_HOME/bin:$PATH 10 | 11 | WORKDIR /source 12 | ENTRYPOINT ["groovy", "-Dgrape.root=/graperoot"] -------------------------------------------------------------------------------- /groovy/2.3.9/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/gvm 2 | 3 | # Defines environment variables 4 | ENV GROOVY_VERSION 2.3.9 5 | 6 | # Installs Groovy 7 | RUN /bin/bash -c "source /root/.gvm/bin/gvm-init.sh && gvm install groovy ${GROOVY_VERSION}" 8 | ENV GROOVY_HOME /root/.gvm/groovy/current 9 | ENV PATH $GROOVY_HOME/bin:$PATH 10 | 11 | WORKDIR /source 12 | ENTRYPOINT ["groovy", "-Dgrape.root=/graperoot"] -------------------------------------------------------------------------------- /groovy/2.4.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/gvm 2 | 3 | # Defines environment variables 4 | ENV GROOVY_VERSION 2.4.0 5 | 6 | # Installs Groovy 7 | RUN /bin/bash -c "source /root/.gvm/bin/gvm-init.sh && gvm install groovy ${GROOVY_VERSION}" 8 | ENV GROOVY_HOME /root/.gvm/groovy/current 9 | ENV PATH $GROOVY_HOME/bin:$PATH 10 | 11 | WORKDIR /source 12 | ENTRYPOINT ["groovy", "-Dgrape.root=/graperoot"] -------------------------------------------------------------------------------- /groovy/2.4.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/gvm 2 | 3 | # Defines environment variables 4 | ENV GROOVY_VERSION 2.4.1 5 | 6 | # Installs Groovy 7 | RUN /bin/bash -c "source /root/.gvm/bin/gvm-init.sh && gvm install groovy ${GROOVY_VERSION}" 8 | ENV GROOVY_HOME /root/.gvm/groovy/current 9 | ENV PATH $GROOVY_HOME/bin:$PATH 10 | 11 | WORKDIR /source 12 | ENTRYPOINT ["groovy", "-Dgrape.root=/graperoot"] -------------------------------------------------------------------------------- /groovy/2.4.2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/gvm 2 | 3 | # Defines environment variables 4 | ENV GROOVY_VERSION 2.4.2 5 | 6 | # Installs Groovy 7 | RUN /bin/bash -c "source /root/.gvm/bin/gvm-init.sh && gvm install groovy ${GROOVY_VERSION}" 8 | ENV GROOVY_HOME /root/.gvm/groovy/current 9 | ENV PATH $GROOVY_HOME/bin:$PATH 10 | 11 | WORKDIR /source 12 | ENTRYPOINT ["groovy", "-Dgrape.root=/graperoot"] -------------------------------------------------------------------------------- /groovy/2.4.3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/gvm 2 | 3 | # Defines environment variables 4 | ENV GROOVY_VERSION 2.4.3 5 | 6 | # Installs Groovy 7 | RUN /bin/bash -c "source /root/.gvm/bin/gvm-init.sh && gvm install groovy ${GROOVY_VERSION}" 8 | ENV GROOVY_HOME /root/.gvm/groovy/current 9 | ENV PATH $GROOVY_HOME/bin:$PATH 10 | 11 | WORKDIR /source 12 | ENTRYPOINT ["groovy", "-Dgrape.root=/graperoot"] -------------------------------------------------------------------------------- /groovy/2.4.4/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/gvm 2 | 3 | # Defines environment variables 4 | ENV GROOVY_VERSION 2.4.4 5 | 6 | # Installs Groovy 7 | RUN /bin/bash -c "source /root/.gvm/bin/gvm-init.sh && gvm install groovy ${GROOVY_VERSION}" 8 | ENV GROOVY_HOME /root/.gvm/groovy/current 9 | ENV PATH $GROOVY_HOME/bin:$PATH 10 | 11 | WORKDIR /source 12 | ENTRYPOINT ["groovy", "-Dgrape.root=/graperoot"] -------------------------------------------------------------------------------- /groovy/2.4.4/README.md: -------------------------------------------------------------------------------- 1 | ## Groovy Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Groovy](http://groovy.codehaus.org/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/groovy/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/groovy` 11 | * `docker pull webratio/groovy:2.3` 12 | * `docker pull webratio/groovy:2.3.7` 13 | * `docker pull webratio/groovy:2.3.8` 14 | * `docker pull webratio/groovy:2.3.9` 15 | * `docker pull webratio/groovy:2.3.10` 16 | * `docker pull webratio/groovy:2.3.11` 17 | * `docker pull webratio/groovy:2.4` 18 | * `docker pull webratio/groovy:2.4.0` 19 | * `docker pull webratio/groovy:2.4.1` 20 | * `docker pull webratio/groovy:2.4.2` 21 | * `docker pull webratio/groovy:2.4.3` 22 | * `docker pull webratio/groovy:2.4.4` 23 | 24 | ### Usage 25 | 26 | docker run -v $(pwd):/source -v :/graperoot webratio/groovy 27 | -------------------------------------------------------------------------------- /groovy/2.4.4_java8/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/groovy:2.4.4 2 | 3 | RUN apt-get update -y && \ 4 | apt-get install -y dos2unix software-properties-common curl && \ 5 | add-apt-repository ppa:webupd8team/java -y && \ 6 | apt-get update -y && \ 7 | echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections && \ 8 | apt-get install -y oracle-java8-installer && \ 9 | apt-get remove software-properties-common -y && \ 10 | apt-get autoremove -y && \ 11 | apt-get clean 12 | ENV JAVA_HOME /usr/lib/jvm/java-8-oracle -------------------------------------------------------------------------------- /groovy/2.5.15_java-8/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/java:openjdk-8 2 | 3 | # Defines environment variables for GVM 4 | ENV HOME /root 5 | ENV DEBIAN_FRONTEND noninteractive 6 | 7 | # Installs curl and GVM 8 | RUN apt-get update && \ 9 | apt-get install -y curl zip && \ 10 | curl -s "https://get.sdkman.io" | bash && \ 11 | apt-get autoremove -y && \ 12 | apt-get clean 13 | 14 | # Defines environment variables for Groovy 15 | ENV GROOVY_VERSION 2.5.15 16 | 17 | # Installs Groovy 18 | RUN /bin/bash -c "source /root/.sdkman/bin/sdkman-init.sh && sdk install groovy ${GROOVY_VERSION}" 19 | ENV GROOVY_HOME /root/.sdkman/candidates/groovy/current 20 | ENV PATH $GROOVY_HOME/bin:$PATH 21 | 22 | WORKDIR /source 23 | ENTRYPOINT ["groovy", "-Dgrape.root=/graperoot"] 24 | -------------------------------------------------------------------------------- /groovy/2.5.15_java-8/README.md: -------------------------------------------------------------------------------- 1 | ## Groovy Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Groovy](http://groovy.codehaus.org/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/groovy/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/groovy` 11 | 12 | ### Usage 13 | 14 | docker run -v $(pwd):/source -v :/graperoot webratio/groovy 15 | -------------------------------------------------------------------------------- /gvm/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/java:7 2 | 3 | # Defines environment variables 4 | ENV HOME /root 5 | ENV DEBIAN_FRONTEND noninteractive 6 | 7 | # Installs curl and GVM 8 | RUN apt-get update && \ 9 | apt-get install -y curl unzip && \ 10 | curl -s get.gvmtool.net | bash && \ 11 | apt-get autoremove -y && \ 12 | apt-get clean -------------------------------------------------------------------------------- /gvm/README.md: -------------------------------------------------------------------------------- 1 | ## GVM Dockerfile 2 | 3 | This repository contains **Dockerfile** of [GVM - the Groovy enVironment Manager](http://gvmtool.net/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/gvm/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/gvm` 11 | 12 | ### Usage 13 | 14 | docker run webratio/gvm gvm install groovy 15 | -------------------------------------------------------------------------------- /httpd-with-aws-cli/2.4.23/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM httpd:2.4.23 2 | 3 | RUN apt-get update -y && \ 4 | apt-get install -y python python-pip python-virtualenv dos2unix && \ 5 | mkdir aws && \ 6 | virtualenv aws/env && \ 7 | ./aws/env/bin/pip install awscli && \ 8 | apt-get autoremove --purge -y && \ 9 | apt-get clean && \ 10 | rm -rf /var/lib/apt/lists/* -------------------------------------------------------------------------------- /httpd-with-aws-cli/2.4.25/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM httpd:2.4.25 2 | 3 | RUN apt-get update -y && \ 4 | apt-get install -y python python-pip python-virtualenv dos2unix && \ 5 | mkdir aws && \ 6 | virtualenv aws/env && \ 7 | ./aws/env/bin/pip install awscli && \ 8 | apt-get autoremove --purge -y && \ 9 | apt-get clean && \ 10 | rm -rf /var/lib/apt/lists/* -------------------------------------------------------------------------------- /httpd-with-aws-cli/2.4.25/README.md: -------------------------------------------------------------------------------- 1 | ## Apache HTTP Server Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Apache HTTP Server](https://httpd.apache.org/) combined with [AWS CLI](https://aws.amazon.com/cli/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/httpd-with-aws-cli/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/httpd-with-aws-cli:2.4.25` 11 | * `docker pull webratio/httpd-with-aws-cli:2.4` 12 | -------------------------------------------------------------------------------- /httpd-with-curl/2.4.23/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM httpd:2.4.23 2 | 3 | RUN apt-get update -y && \ 4 | apt-get install -y curl dos2unix && \ 5 | apt-get autoremove --purge -y && \ 6 | apt-get clean && \ 7 | rm -rf /var/lib/apt/lists/* -------------------------------------------------------------------------------- /httpd-with-curl/2.4.29/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM httpd:2.4.29 2 | 3 | RUN apt-get update -y && \ 4 | apt-get install -y curl dos2unix && \ 5 | apt-get autoremove --purge -y && \ 6 | apt-get clean && \ 7 | rm -rf /var/lib/apt/lists/* -------------------------------------------------------------------------------- /httpd-with-curl/2.4.29/README.md: -------------------------------------------------------------------------------- 1 | ## Apache HTTP Server Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Apache HTTP Server](https://httpd.apache.org/) combined with curl for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/httpd-with-curl/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/httpd-with-curl:2.4.29` 11 | * `docker pull webratio/httpd-with-curl:2.4` 12 | -------------------------------------------------------------------------------- /java-with-aws-cli/8/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/java:8 2 | 3 | RUN apt-get update -y && \ 4 | apt-get install -y python python-pip python-virtualenv dos2unix && \ 5 | mkdir aws && \ 6 | virtualenv aws/env && \ 7 | ./aws/env/bin/pip install awscli && \ 8 | apt-get autoremove --purge -y && \ 9 | apt-get clean && \ 10 | rm -rf /var/lib/apt/lists/* -------------------------------------------------------------------------------- /java-with-aws-cli/8/README.md: -------------------------------------------------------------------------------- 1 | ## Java Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Java](https://www.java.com/) combined with [AWS CLI](https://aws.amazon.com/cli/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/java/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/java-with-aws-cli` 11 | * `docker pull webratio/java-with-aws-cli:8` 12 | -------------------------------------------------------------------------------- /java/7/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:trusty 2 | 3 | RUN apt-get update -y && \ 4 | apt-get install -y software-properties-common && \ 5 | add-apt-repository ppa:webupd8team/java -y && \ 6 | apt-get update -y && \ 7 | echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections && \ 8 | apt-get install -y oracle-java7-installer && \ 9 | apt-get remove software-properties-common -y && \ 10 | apt-get autoremove -y && \ 11 | apt-get clean 12 | ENV JAVA_HOME /usr/lib/jvm/java-7-oracle -------------------------------------------------------------------------------- /java/8/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:trusty 2 | 3 | RUN apt-get update -y && \ 4 | apt-get install -y dos2unix software-properties-common curl && \ 5 | add-apt-repository ppa:webupd8team/java -y && \ 6 | apt-get update -y && \ 7 | echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections && \ 8 | apt-get install -y oracle-java8-installer && \ 9 | apt-get remove software-properties-common -y && \ 10 | apt-get autoremove -y && \ 11 | apt-get clean 12 | ENV JAVA_HOME /usr/lib/jvm/java-8-oracle -------------------------------------------------------------------------------- /java/8/README.md: -------------------------------------------------------------------------------- 1 | ## Java Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Java](https://www.java.com/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/java/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/java` 11 | * `docker pull webratio/java:7` 12 | * `docker pull webratio/java:8` -------------------------------------------------------------------------------- /java/openjdk-11/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:jammy 2 | 3 | ARG TARGETARCH 4 | 5 | RUN apt-get update -y && \ 6 | apt-get install -y dos2unix curl && \ 7 | apt-get install -y openjdk-11-jdk && \ 8 | apt-get autoremove -y && \ 9 | apt-get clean 10 | ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-$TARGETARCH 11 | 12 | # Fix for invalid 'cacerts' file 13 | # - switch default keystore type to 'jks' (https://bugs.launchpad.net/ubuntu/+source/ca-certificates-java/+bug/1739631) 14 | RUN sed -i 's/keystore.type=pkcs12/keystore.type=jks/' /etc/java-11-openjdk/security/java.security 15 | -------------------------------------------------------------------------------- /java/openjdk-11/README.md: -------------------------------------------------------------------------------- 1 | ## Java Dockerfile 2 | 3 | This repository contains **Dockerfile** of [OpenJDK Java](https://openjdk.java.net/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/java/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/java` 11 | * `docker pull webratio/java:openjdk-8` 12 | 13 | -------------------------------------------------------------------------------- /java/openjdk-17/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:jammy 2 | 3 | ARG TARGETARCH 4 | 5 | RUN apt-get update -y && \ 6 | apt-get install -y dos2unix curl && \ 7 | apt-get install -y openjdk-17-jdk && \ 8 | apt-get autoremove -y && \ 9 | apt-get clean 10 | ENV JAVA_HOME /usr/lib/jvm/java-17-openjdk-$TARGETARCH 11 | 12 | # Fix for invalid 'cacerts' file 13 | # - switch default keystore type to 'jks' (https://bugs.launchpad.net/ubuntu/+source/ca-certificates-java/+bug/1739631) 14 | RUN sed -i 's/keystore.type=pkcs12/keystore.type=jks/' /etc/java-17-openjdk/security/java.security 15 | -------------------------------------------------------------------------------- /java/openjdk-17/README.md: -------------------------------------------------------------------------------- 1 | ## Java Dockerfile 2 | 3 | This repository contains **Dockerfile** of [OpenJDK Java](https://openjdk.java.net/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/java/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/java` 11 | * `docker pull webratio/java:openjdk-8` 12 | 13 | -------------------------------------------------------------------------------- /java/openjdk-8/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:jammy 2 | 3 | ARG TARGETARCH 4 | 5 | RUN apt-get update -y && \ 6 | apt-get install -y dos2unix software-properties-common curl && \ 7 | add-apt-repository ppa:openjdk-r/ppa -y && \ 8 | apt-get update -y && \ 9 | apt-get install -y openjdk-8-jdk && \ 10 | apt-get remove software-properties-common -y && \ 11 | apt-get autoremove -y && \ 12 | apt-get clean 13 | ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-$TARGETARCH 14 | 15 | # Fix for empty 'cacerts' file (https://bugs.launchpad.net/ubuntu/+source/ca-certificates-java/+bug/983302) 16 | RUN update-ca-certificates -f 17 | -------------------------------------------------------------------------------- /java/openjdk-8/README.md: -------------------------------------------------------------------------------- 1 | ## Java Dockerfile 2 | 3 | This repository contains **Dockerfile** of [OpenJDK Java](https://openjdk.java.net/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/java/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/java` 11 | * `docker pull webratio/java:openjdk-8` 12 | 13 | -------------------------------------------------------------------------------- /mongo-replicaset/3.2.11/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM mongo:3.2.11 2 | 3 | RUN apt-get update -y && \ 4 | apt-get install -y python python-pip python-virtualenv dos2unix && \ 5 | mkdir /aws && \ 6 | virtualenv /aws/env && \ 7 | /aws/env/bin/pip install awscli && \ 8 | apt-get autoremove --purge -y && \ 9 | apt-get clean && \ 10 | rm -rf /var/lib/apt/lists/* 11 | 12 | ADD rs-init.sh / 13 | ADD rs-reconfig.sh / 14 | ADD rs-status.sh / 15 | ADD backup.sh / 16 | RUN chmod +x /rs-init.sh /rs-reconfig.sh /rs-status.sh /backup.sh -------------------------------------------------------------------------------- /mongo-replicaset/3.2.11/backup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ "${BACKUP_LOCATION}" == "" ]; then 5 | echo "Variable BACKUP_LOCATION not provided: skipping backup" 6 | exit 0 7 | fi 8 | if [ "${BACKUP_BASENAME}" == "" ]; then 9 | echo "Variable BACKUP_BASENAME not provided: skipping backup" 10 | exit 0 11 | fi 12 | MASTER=`mongo --quiet --eval "d=db.isMaster(); print( d['ismaster'] );"` 13 | if [ "${MASTER}" != "true" ]; then 14 | echo "Current instance is not master: skipping backup" 15 | exit 0 16 | fi 17 | 18 | DIR="/tmp/backup" 19 | FILE="/tmp/backup.tar.gz" 20 | MILLIS_FILE="/tmp/last_time_millis" 21 | DATE=`date +%Y%m%d%H%M%S` 22 | MILLIS=`date +%s%N | cut -b1-13` 23 | rm -rf $DIR 24 | mkdir -p $DIR 25 | mongodump --out=$DIR 26 | rm -f $FILE 27 | tar cvzf $FILE -C $DIR . 28 | rm -f $MILLIS 29 | echo -n $MILLIS > /tmp/last_time_millis 30 | /aws/env/bin/aws s3 cp $FILE s3://${BACKUP_LOCATION}/mongo/${BACKUP_BASENAME}.$DATE.tar.gz 31 | /aws/env/bin/aws s3 cp $MILLIS_FILE s3://${BACKUP_LOCATION}/mongo/last_time_millis --acl public-read -------------------------------------------------------------------------------- /mongo-replicaset/3.2.11/rs-init.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | mongo --host mongo1 --eval 'rs.initiate({"_id":"semioty","members":[{"_id":1,"host":"mongo1","priority":1}]})' -------------------------------------------------------------------------------- /mongo-replicaset/3.2.11/rs-reconfig.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | usage(){ 5 | echo "Usage: /rs-reconfig.sh " 6 | exit 1 7 | } 8 | setVariable(){ 9 | if [ -z "$2" ] 10 | then 11 | echo "Error: <$1> not provided" 12 | usage 13 | fi 14 | eval "$1=$2" 15 | } 16 | 17 | setVariable 'MAX_INDEX' $1 18 | setVariable 'PRIMARY_INDEX' $2 19 | MEMBERS="{\"_id\":1,\"host\":\"mongo1\",\"priority\":1}" 20 | for ((i = 2; i <= $(($MAX_INDEX)); i++)); do 21 | MEMBERS="$MEMBERS,{\"_id\":$i,\"host\":\"mongo$i\",\"priority\":1}" 22 | done 23 | EVAL_ARG="rs.reconfig({\"_id\":\"semioty\",\"members\":[$MEMBERS]})" 24 | mongo --host mongo${PRIMARY_INDEX} --eval "$EVAL_ARG" 25 | -------------------------------------------------------------------------------- /mongo-replicaset/3.2.11/rs-status.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | mongo --eval 'rs.status()' -------------------------------------------------------------------------------- /mongo-replicaset/3.2.11b/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM mongo:3.2.11 2 | 3 | RUN apt-get update -y && \ 4 | apt-get install -y python python-pip python-virtualenv dos2unix && \ 5 | mkdir /aws && \ 6 | virtualenv /aws/env && \ 7 | /aws/env/bin/pip install awscli && \ 8 | apt-get autoremove --purge -y && \ 9 | apt-get clean && \ 10 | rm -rf /var/lib/apt/lists/* 11 | 12 | ADD rs-init.sh / 13 | ADD rs-reconfig.sh / 14 | ADD rs-status.sh / 15 | ADD backup.sh / 16 | RUN chmod +x /rs-init.sh /rs-reconfig.sh /rs-status.sh /backup.sh 17 | 18 | ADD mongo-cluster-entrypoint.sh / 19 | RUN chmod +x /mongo-cluster-entrypoint.sh 20 | ENTRYPOINT ["/mongo-cluster-entrypoint.sh"] -------------------------------------------------------------------------------- /mongo-replicaset/3.2.11b/README.md: -------------------------------------------------------------------------------- 1 | ## MongoDB Replica Set Dockerfile 2 | 3 | This repository contains **Dockerfile** of [MongoDB](https://www.mongodb.com/) suitable for replica set for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/mongo-replicaset/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/mongo-replicaset:3.2.11` 11 | * `docker pull webratio/mongo-replicaset:3.2` 12 | -------------------------------------------------------------------------------- /mongo-replicaset/3.2.11b/backup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ "${BACKUP_LOCATION}" == "" ]; then 5 | echo "Variable BACKUP_LOCATION not provided: skipping backup" 6 | exit 0 7 | fi 8 | if [ "${BACKUP_BASENAME}" == "" ]; then 9 | echo "Variable BACKUP_BASENAME not provided: skipping backup" 10 | exit 0 11 | fi 12 | MASTER=`mongo --quiet --eval "d=db.isMaster(); print( d['ismaster'] );"` 13 | if [ "${MASTER}" != "true" ]; then 14 | echo "Current instance is not master: skipping backup" 15 | exit 0 16 | fi 17 | 18 | DIR="/tmp/backup" 19 | FILE="/tmp/backup.tar.gz" 20 | MILLIS_FILE="/tmp/last_time_millis" 21 | DATE=`date +%Y%m%d%H%M%S` 22 | MILLIS=`date +%s%N | cut -b1-13` 23 | rm -rf $DIR 24 | mkdir -p $DIR 25 | mongodump --out=$DIR 26 | rm -f $FILE 27 | tar cvzf $FILE -C $DIR . 28 | rm -f $MILLIS 29 | echo -n $MILLIS > /tmp/last_time_millis 30 | /aws/env/bin/aws s3 cp $FILE s3://${BACKUP_LOCATION}/mongo/${BACKUP_BASENAME}.$DATE.tar.gz 31 | /aws/env/bin/aws s3 cp $MILLIS_FILE s3://${BACKUP_LOCATION}/mongo/last_time_millis --acl public-read -------------------------------------------------------------------------------- /mongo-replicaset/3.2.11b/mongo-cluster-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | echo "Waiting 20 seconds for Docker swarm network name..." 5 | sleep 20 6 | /entrypoint.sh "$@" -------------------------------------------------------------------------------- /mongo-replicaset/3.2.11b/rs-init.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | mongo --host mongo1 --eval 'rs.initiate({"_id":"semioty","members":[{"_id":1,"host":"mongo1","priority":1}]})' -------------------------------------------------------------------------------- /mongo-replicaset/3.2.11b/rs-reconfig.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | usage(){ 5 | echo "Usage: /rs-reconfig.sh " 6 | exit 1 7 | } 8 | setVariable(){ 9 | if [ -z "$2" ] 10 | then 11 | echo "Error: <$1> not provided" 12 | usage 13 | fi 14 | eval "$1=$2" 15 | } 16 | 17 | setVariable 'MAX_INDEX' $1 18 | setVariable 'PRIMARY_INDEX' $2 19 | MEMBERS="{\"_id\":1,\"host\":\"mongo1\",\"priority\":1}" 20 | for ((i = 2; i <= $(($MAX_INDEX)); i++)); do 21 | MEMBERS="$MEMBERS,{\"_id\":$i,\"host\":\"mongo$i\",\"priority\":1}" 22 | done 23 | EVAL_ARG="rs.reconfig({\"_id\":\"semioty\",\"members\":[$MEMBERS]})" 24 | mongo --host mongo${PRIMARY_INDEX} --eval "$EVAL_ARG" 25 | -------------------------------------------------------------------------------- /mongo-replicaset/3.2.11b/rs-status.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | mongo --eval 'rs.status()' -------------------------------------------------------------------------------- /mosquitto-exporter/1.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM anapsix/alpine-java 2 | 3 | ADD mosquitto-exporter-semioty-1.0.jar /app.jar 4 | 5 | CMD ["java","-jar","/app.jar"] 6 | 7 | -------------------------------------------------------------------------------- /mosquitto-exporter/1.0/mosquitto-exporter-semioty-1.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webratio/docker/30b3c7f3244f8e6009b88ca75fb29ea81613057d/mosquitto-exporter/1.0/mosquitto-exporter-semioty-1.0.jar -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin-and-web-socket/v1.4.14/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:jessie 2 | 3 | ENV MOSQUITTO_VERSION=1.4.14 4 | 5 | RUN \ 6 | set -x; \ 7 | apt-get update && apt-get install -y --no-install-recommends \ 8 | libc-ares-dev git libmysqlclient-dev libssl-dev uuid-dev build-essential wget ca-certificates \ 9 | curl libcurl4-openssl-dev libc-ares2 libcurl3 \ 10 | && apt-get install -y cmake \ 11 | && cd /tmp \ 12 | && git clone https://github.com/warmcat/libwebsockets.git \ 13 | && cd libwebsockets \ 14 | && mkdir build && cd build && cmake .. && make && make install \ 15 | && cd /tmp \ 16 | && wget http://mosquitto.org/files/source/mosquitto-$MOSQUITTO_VERSION.tar.gz -O mosquitto.tar.gz \ 17 | && wget http://mosquitto.org/files/source/mosquitto-$MOSQUITTO_VERSION.tar.gz.asc -O mosquitto.tar.gz.asc \ 18 | && gpg --keyserver pgp.mit.edu --recv B3E717B7 \ 19 | && gpg --verify mosquitto.tar.gz.asc \ 20 | && mkdir mosquitto-src && tar xfz mosquitto.tar.gz --strip-components=1 -C mosquitto-src \ 21 | && cd mosquitto-src \ 22 | && make WITH_SRV=yes WITH_MEMORY_TRACKING=no WITH_WEBSOCKETS=yes \ 23 | && make install && ldconfig \ 24 | && git clone https://github.com/jpmens/mosquitto-auth-plug.git \ 25 | && cd mosquitto-auth-plug \ 26 | && git checkout 7ff04a68c -b stable_branch \ 27 | && cp config.mk.in config.mk \ 28 | && sed -i "s/BACKEND_HTTP ?= no/BACKEND_HTTP ?= yes/" config.mk \ 29 | && sed -i "s/BACKEND_MYSQL ?= yes/BACKEND_MYSQL ?= no/" config.mk \ 30 | && sed -i "s/CFG_LDFLAGS =/CFG_LDFLAGS = -lcares/" config.mk \ 31 | && sed -i "s/MOSQUITTO_SRC =/MOSQUITTO_SRC = \/tmp\/mosquitto-src\//" config.mk \ 32 | && make \ 33 | && cp np /usr/bin/np \ 34 | && mkdir /mqtt && cp auth-plug.so /mqtt/ \ 35 | && cp auth-plug.so /usr/local/lib/ \ 36 | && useradd -r mosquitto \ 37 | && apt-get purge -y build-essential git wget ca-certificates \ 38 | && apt-get autoremove -y \ 39 | && apt-get -y autoclean \ 40 | && rm -rf /var/cache/apt/* \ 41 | && rm -rf /tmp/* 42 | 43 | VOLUME ["/var/lib/mosquitto"] 44 | 45 | EXPOSE 1883 8883 9883 46 | 47 | 48 | ADD mosquitto.conf /etc/mosquitto/mosquitto.conf 49 | ADD run.sh /run.sh 50 | RUN chmod +x /run.sh 51 | 52 | ENTRYPOINT ["/run.sh"] 53 | CMD ["mosquitto"] -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin-and-web-socket/v1.4.14/mosquitto.conf: -------------------------------------------------------------------------------- 1 | # Config file for mosquitto 2 | retry_interval 20 3 | sys_interval 10 4 | store_clean_interval 10 5 | user mosquitto 6 | max_inflight_messages 40 7 | max_queued_messages 200 8 | queue_qos0_messages false 9 | message_size_limit 0 10 | allow_zero_length_clientid true 11 | persistent_client_expiration 3m 12 | allow_duplicate_messages false 13 | autosave_interval 60 14 | autosave_on_changes false 15 | persistence true 16 | persistence_file mosquitto.db 17 | persistence_location /var/lib/mosquitto/ 18 | log_dest stdout 19 | log_type all 20 | connection_messages true 21 | log_timestamp true 22 | 23 | listener 1883 24 | listener 8883 25 | listener 9883 26 | protocol websockets 27 | tls_version tlsv1.2 28 | require_certificate false -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin-and-web-socket/v1.4.14/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | chown mosquitto:mosquitto -R /var/lib/mosquitto 5 | 6 | 7 | if [ "$1" = 'mosquitto' ]; then 8 | exec /usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf 9 | fi 10 | 11 | if [ "$1" = 'mosquittoverbose' ]; then 12 | exec /usr/local/sbin/mosquitto -v -c /etc/mosquitto/mosquitto.conf 13 | fi 14 | 15 | exec "$@" -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin-and-web-socket/v1.6.7/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:stable-slim as builder 2 | 3 | #Set mosquitto and plugin versions. 4 | #Change them for your needs. 5 | ENV MOSQUITTO_VERSION=1.6.7 6 | ENV PLUGIN_VERSION=0.6.1 7 | ENV GO_VERSION=1.12.12 8 | 9 | WORKDIR /app 10 | 11 | #Get mosquitto build dependencies. 12 | RUN apt-get update && apt-get install -y libwebsockets8 libwebsockets-dev libc-ares2 libc-ares-dev openssl uuid uuid-dev wget build-essential git 13 | RUN mkdir -p mosquitto/auth mosquitto/conf.d 14 | 15 | RUN wget http://mosquitto.org/files/source/mosquitto-${MOSQUITTO_VERSION}.tar.gz 16 | RUN tar xzvf mosquitto-${MOSQUITTO_VERSION}.tar.gz && rm mosquitto-${MOSQUITTO_VERSION}.tar.gz 17 | 18 | #Build mosquitto. 19 | RUN cd mosquitto-${MOSQUITTO_VERSION} && make WITH_WEBSOCKETS=yes && make install && cd .. 20 | 21 | #Get Go. 22 | RUN wget https://dl.google.com/go/go${GO_VERSION}.linux-amd64.tar.gz && tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz 23 | RUN export PATH=$PATH:/usr/local/go/bin && go version && rm go${GO_VERSION}.linux-amd64.tar.gz 24 | 25 | #Get the plugin. 26 | RUN wget https://github.com/iegomez/mosquitto-go-auth/archive/${PLUGIN_VERSION}.tar.gz \ 27 | && ls -l \ 28 | && tar xvf *.tar.gz --strip-components=1 \ 29 | && rm -Rf go*.tar.gz \ 30 | && ls -l 31 | 32 | #Build the plugin. 33 | RUN export PATH=$PATH:/usr/local/go/bin && export CGO_CFLAGS="-I/usr/local/include -fPIC" && export CGO_LDFLAGS="-shared" && make 34 | 35 | #Start from a new image. 36 | FROM debian:stable-slim 37 | 38 | #Get mosquitto dependencies. 39 | RUN apt-get update && apt-get install -y libwebsockets8 libc-ares2 openssl uuid curl 40 | 41 | #Setup mosquitto env. 42 | RUN mkdir -p /var/lib/mosquitto /var/log/mosquitto 43 | RUN groupadd mosquitto \ 44 | && useradd -s /sbin/nologin mosquitto -g mosquitto -d /var/lib/mosquitto \ 45 | && chown -R mosquitto:mosquitto /var/log/mosquitto/ \ 46 | && chown -R mosquitto:mosquitto /var/lib/mosquitto/ 47 | 48 | #Copy confs, plugin so and mosquitto binary. 49 | #COPY --from=builder /app/mosquitto/ /mosquitto/ 50 | COPY --from=builder /app/go-auth.so /usr/local/lib/auth-plug.so 51 | COPY --from=builder /usr/local/sbin/mosquitto /usr/local/sbin/mosquitto 52 | 53 | VOLUME ["/var/lib/mosquitto"] 54 | 55 | EXPOSE 1883 8883 9883 56 | 57 | ADD mosquitto.conf /etc/mosquitto/mosquitto.conf 58 | ADD run.sh /run.sh 59 | RUN chmod +x /run.sh 60 | 61 | ENTRYPOINT ["/run.sh"] 62 | CMD ["mosquitto"] -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin-and-web-socket/v1.6.7/README.md: -------------------------------------------------------------------------------- 1 | ## Mosquitto Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Mosquitto](https://mosquitto.org/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/mosquitto/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/mosquitto-with-auth-plugin-and-web-socket:v1.4.14` 11 | * `docker pull webratio/mosquitto-with-auth-plugin-and-web-socket:v1.6.7` -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin-and-web-socket/v1.6.7/mosquitto.conf: -------------------------------------------------------------------------------- 1 | # Config file for mosquitto 2 | retry_interval 20 3 | sys_interval 10 4 | store_clean_interval 10 5 | user mosquitto 6 | max_inflight_messages 40 7 | max_queued_messages 200 8 | queue_qos0_messages false 9 | message_size_limit 0 10 | allow_zero_length_clientid true 11 | persistent_client_expiration 3m 12 | allow_duplicate_messages false 13 | autosave_interval 60 14 | autosave_on_changes false 15 | persistence true 16 | persistence_file mosquitto.db 17 | persistence_location /var/lib/mosquitto/ 18 | log_dest stdout 19 | log_type all 20 | connection_messages true 21 | log_timestamp true 22 | 23 | listener 1883 24 | listener 8883 25 | listener 9883 26 | protocol websockets 27 | tls_version tlsv1.2 28 | require_certificate false -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin-and-web-socket/v1.6.7/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | chown mosquitto:mosquitto -R /var/lib/mosquitto 5 | 6 | 7 | if [ "$1" = 'mosquitto' ]; then 8 | exec /usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf 9 | fi 10 | 11 | if [ "$1" = 'mosquittoverbose' ]; then 12 | exec /usr/local/sbin/mosquitto -v -c /etc/mosquitto/mosquitto.conf 13 | fi 14 | 15 | exec "$@" -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin-and-web-socket/v1.6.7b/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:stable-slim as builder 2 | 3 | #Set mosquitto and plugin versions. 4 | #Change them for your needs. 5 | ENV MOSQUITTO_VERSION=1.6.7 6 | ENV PLUGIN_COMMIT_ID=bbb9ee9e802f59dc99dd16876c487a1bed900db1 7 | ENV GO_VERSION=1.12.12 8 | 9 | WORKDIR /app 10 | 11 | #Get mosquitto build dependencies. 12 | RUN apt-get update && apt-get install -y libwebsockets8 libwebsockets-dev libc-ares2 libc-ares-dev openssl uuid uuid-dev wget build-essential git 13 | RUN mkdir -p mosquitto/auth mosquitto/conf.d 14 | 15 | RUN wget http://mosquitto.org/files/source/mosquitto-${MOSQUITTO_VERSION}.tar.gz 16 | RUN tar xzvf mosquitto-${MOSQUITTO_VERSION}.tar.gz && rm mosquitto-${MOSQUITTO_VERSION}.tar.gz 17 | 18 | #Build mosquitto. 19 | RUN cd mosquitto-${MOSQUITTO_VERSION} && make WITH_WEBSOCKETS=yes && make install && cd .. 20 | 21 | #Get Go. 22 | RUN wget https://dl.google.com/go/go${GO_VERSION}.linux-amd64.tar.gz && tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz 23 | RUN export PATH=$PATH:/usr/local/go/bin && go version && rm go${GO_VERSION}.linux-amd64.tar.gz 24 | 25 | #Get the plugin. 26 | RUN git clone https://github.com/iegomez/mosquitto-go-auth.git && \ 27 | cd mosquitto-go-auth && \ 28 | git checkout ${PLUGIN_COMMIT_ID} && \ 29 | mv * .. 30 | 31 | #Build the plugin. 32 | RUN export PATH=$PATH:/usr/local/go/bin && export CGO_CFLAGS="-I/usr/local/include -fPIC" && export CGO_LDFLAGS="-shared" && make 33 | 34 | #Start from a new image. 35 | FROM debian:stable-slim 36 | 37 | #Get mosquitto dependencies. 38 | RUN apt-get update && apt-get install -y libwebsockets8 libc-ares2 openssl uuid curl 39 | 40 | #Setup mosquitto env. 41 | RUN mkdir -p /var/lib/mosquitto /var/log/mosquitto 42 | RUN groupadd mosquitto \ 43 | && useradd -s /sbin/nologin mosquitto -g mosquitto -d /var/lib/mosquitto \ 44 | && chown -R mosquitto:mosquitto /var/log/mosquitto/ \ 45 | && chown -R mosquitto:mosquitto /var/lib/mosquitto/ 46 | 47 | #Copy confs, plugin so and mosquitto binary. 48 | #COPY --from=builder /app/mosquitto/ /mosquitto/ 49 | COPY --from=builder /app/go-auth.so /usr/local/lib/auth-plug.so 50 | COPY --from=builder /usr/local/sbin/mosquitto /usr/local/sbin/mosquitto 51 | 52 | VOLUME ["/var/lib/mosquitto"] 53 | 54 | EXPOSE 1883 8883 9883 55 | 56 | ADD mosquitto.conf /etc/mosquitto/mosquitto.conf 57 | ADD run.sh /run.sh 58 | RUN chmod +x /run.sh 59 | 60 | ENTRYPOINT ["/run.sh"] 61 | CMD ["mosquitto"] -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin-and-web-socket/v1.6.7b/README.md: -------------------------------------------------------------------------------- 1 | ## Mosquitto Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Mosquitto](https://mosquitto.org/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/mosquitto/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/mosquitto-with-auth-plugin-and-web-socket:v1.4.14` 11 | * `docker pull webratio/mosquitto-with-auth-plugin-and-web-socket:v1.6.7` -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin-and-web-socket/v1.6.7b/mosquitto.conf: -------------------------------------------------------------------------------- 1 | # Config file for mosquitto 2 | retry_interval 20 3 | sys_interval 10 4 | store_clean_interval 10 5 | user mosquitto 6 | max_inflight_messages 40 7 | max_queued_messages 200 8 | queue_qos0_messages false 9 | message_size_limit 0 10 | allow_zero_length_clientid true 11 | persistent_client_expiration 3m 12 | allow_duplicate_messages false 13 | autosave_interval 60 14 | autosave_on_changes false 15 | persistence true 16 | persistence_file mosquitto.db 17 | persistence_location /var/lib/mosquitto/ 18 | log_dest stdout 19 | log_type all 20 | connection_messages true 21 | log_timestamp true 22 | 23 | listener 1883 24 | listener 8883 25 | listener 9883 26 | protocol websockets 27 | tls_version tlsv1.2 28 | require_certificate false -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin-and-web-socket/v1.6.7b/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | chown mosquitto:mosquitto -R /var/lib/mosquitto 5 | 6 | 7 | if [ "$1" = 'mosquitto' ]; then 8 | exec /usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf 9 | fi 10 | 11 | if [ "$1" = 'mosquittoverbose' ]; then 12 | exec /usr/local/sbin/mosquitto -v -c /etc/mosquitto/mosquitto.conf 13 | fi 14 | 15 | exec "$@" -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin-and-web-socket/v1.6.8/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:stable-slim as builder 2 | 3 | #Set mosquitto and plugin versions. 4 | #Change them for your needs. 5 | ENV MOSQUITTO_VERSION=1.6.8 6 | ENV PLUGIN_COMMIT_ID=bbb9ee9e802f59dc99dd16876c487a1bed900db1 7 | ENV GO_VERSION=1.12.12 8 | 9 | WORKDIR /app 10 | 11 | #Get mosquitto build dependencies. 12 | RUN apt-get update && apt-get install -y libwebsockets8 libwebsockets-dev libc-ares2 libc-ares-dev openssl uuid uuid-dev wget build-essential git 13 | RUN mkdir -p mosquitto/auth mosquitto/conf.d 14 | 15 | RUN wget http://mosquitto.org/files/source/mosquitto-${MOSQUITTO_VERSION}.tar.gz 16 | RUN tar xzvf mosquitto-${MOSQUITTO_VERSION}.tar.gz && rm mosquitto-${MOSQUITTO_VERSION}.tar.gz 17 | 18 | #Build mosquitto. 19 | RUN cd mosquitto-${MOSQUITTO_VERSION} && make WITH_WEBSOCKETS=yes && make install && cd .. 20 | 21 | #Get Go. 22 | RUN wget https://dl.google.com/go/go${GO_VERSION}.linux-amd64.tar.gz && tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz 23 | RUN export PATH=$PATH:/usr/local/go/bin && go version && rm go${GO_VERSION}.linux-amd64.tar.gz 24 | 25 | #Get the plugin. 26 | RUN git clone https://github.com/iegomez/mosquitto-go-auth.git && \ 27 | cd mosquitto-go-auth && \ 28 | git checkout ${PLUGIN_COMMIT_ID} && \ 29 | mv * .. 30 | 31 | #Build the plugin. 32 | RUN export PATH=$PATH:/usr/local/go/bin && export CGO_CFLAGS="-I/usr/local/include -fPIC" && export CGO_LDFLAGS="-shared" && make 33 | 34 | #Start from a new image. 35 | FROM debian:stable-slim 36 | 37 | #Get mosquitto dependencies. 38 | RUN apt-get update && apt-get install -y libwebsockets8 libc-ares2 openssl uuid curl 39 | 40 | #Setup mosquitto env. 41 | RUN mkdir -p /var/lib/mosquitto /var/log/mosquitto 42 | RUN groupadd mosquitto \ 43 | && useradd -s /sbin/nologin mosquitto -g mosquitto -d /var/lib/mosquitto \ 44 | && chown -R mosquitto:mosquitto /var/log/mosquitto/ \ 45 | && chown -R mosquitto:mosquitto /var/lib/mosquitto/ 46 | 47 | #Copy confs, plugin so and mosquitto binary. 48 | #COPY --from=builder /app/mosquitto/ /mosquitto/ 49 | COPY --from=builder /app/go-auth.so /usr/local/lib/auth-plug.so 50 | COPY --from=builder /usr/local/sbin/mosquitto /usr/local/sbin/mosquitto 51 | 52 | VOLUME ["/var/lib/mosquitto"] 53 | 54 | EXPOSE 1883 8883 9883 55 | 56 | ADD mosquitto.conf /etc/mosquitto/mosquitto.conf 57 | ADD run.sh /run.sh 58 | RUN chmod +x /run.sh 59 | 60 | ENTRYPOINT ["/run.sh"] 61 | CMD ["mosquitto"] -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin-and-web-socket/v1.6.8/README.md: -------------------------------------------------------------------------------- 1 | ## Mosquitto Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Mosquitto](https://mosquitto.org/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/mosquitto/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/mosquitto-with-auth-plugin-and-web-socket:v1.4.14` 11 | * `docker pull webratio/mosquitto-with-auth-plugin-and-web-socket:v1.6.7` -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin-and-web-socket/v1.6.8/mosquitto.conf: -------------------------------------------------------------------------------- 1 | # Config file for mosquitto 2 | retry_interval 20 3 | sys_interval 10 4 | store_clean_interval 10 5 | user mosquitto 6 | max_inflight_messages 40 7 | max_queued_messages 200 8 | queue_qos0_messages false 9 | message_size_limit 0 10 | allow_zero_length_clientid true 11 | persistent_client_expiration 3m 12 | allow_duplicate_messages false 13 | autosave_interval 60 14 | autosave_on_changes false 15 | persistence true 16 | persistence_file mosquitto.db 17 | persistence_location /var/lib/mosquitto/ 18 | log_dest stdout 19 | log_type all 20 | connection_messages true 21 | log_timestamp true 22 | 23 | listener 1883 24 | listener 8883 25 | listener 9883 26 | protocol websockets 27 | tls_version tlsv1.2 28 | require_certificate false -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin-and-web-socket/v1.6.8/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | chown mosquitto:mosquitto -R /var/lib/mosquitto 5 | 6 | 7 | if [ "$1" = 'mosquitto' ]; then 8 | exec /usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf 9 | fi 10 | 11 | if [ "$1" = 'mosquittoverbose' ]; then 12 | exec /usr/local/sbin/mosquitto -v -c /etc/mosquitto/mosquitto.conf 13 | fi 14 | 15 | exec "$@" -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin-and-web-socket/v1.6.8b/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:stable-slim as builder 2 | 3 | #Set mosquitto and plugin versions. 4 | #Change them for your needs. 5 | ENV MOSQUITTO_VERSION=1.6.8 6 | ENV PLUGIN_COMMIT_ID=678ca3ef01900cbe34c0c4a4354c28f162e371e2 7 | ENV GO_VERSION=1.12.12 8 | 9 | WORKDIR /app 10 | 11 | #Get mosquitto build dependencies. 12 | RUN apt-get update && apt-get install -y libwebsockets8 libwebsockets-dev libc-ares2 libc-ares-dev openssl uuid uuid-dev wget build-essential git 13 | RUN mkdir -p mosquitto/auth mosquitto/conf.d 14 | 15 | RUN wget http://mosquitto.org/files/source/mosquitto-${MOSQUITTO_VERSION}.tar.gz 16 | RUN tar xzvf mosquitto-${MOSQUITTO_VERSION}.tar.gz && rm mosquitto-${MOSQUITTO_VERSION}.tar.gz 17 | 18 | #Build mosquitto. 19 | RUN cd mosquitto-${MOSQUITTO_VERSION} && make WITH_WEBSOCKETS=yes && make install && cd .. 20 | 21 | #Get Go. 22 | RUN wget https://dl.google.com/go/go${GO_VERSION}.linux-amd64.tar.gz && tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz 23 | RUN export PATH=$PATH:/usr/local/go/bin && go version && rm go${GO_VERSION}.linux-amd64.tar.gz 24 | 25 | #Get the plugin. 26 | RUN git clone https://github.com/iegomez/mosquitto-go-auth.git && \ 27 | cd mosquitto-go-auth && \ 28 | git checkout ${PLUGIN_COMMIT_ID} && \ 29 | mv * .. 30 | 31 | #Build the plugin. 32 | RUN export PATH=$PATH:/usr/local/go/bin && export CGO_CFLAGS="-I/usr/local/include -fPIC" && export CGO_LDFLAGS="-shared" && make 33 | 34 | #Start from a new image. 35 | FROM debian:stable-slim 36 | 37 | #Get mosquitto dependencies. 38 | RUN apt-get update && apt-get install -y libwebsockets8 libc-ares2 openssl uuid curl 39 | 40 | #Setup mosquitto env. 41 | RUN mkdir -p /var/lib/mosquitto /var/log/mosquitto 42 | RUN groupadd mosquitto \ 43 | && useradd -s /sbin/nologin mosquitto -g mosquitto -d /var/lib/mosquitto \ 44 | && chown -R mosquitto:mosquitto /var/log/mosquitto/ \ 45 | && chown -R mosquitto:mosquitto /var/lib/mosquitto/ 46 | 47 | #Copy confs, plugin so and mosquitto binary. 48 | #COPY --from=builder /app/mosquitto/ /mosquitto/ 49 | COPY --from=builder /app/go-auth.so /usr/local/lib/auth-plug.so 50 | COPY --from=builder /usr/local/sbin/mosquitto /usr/local/sbin/mosquitto 51 | 52 | VOLUME ["/var/lib/mosquitto"] 53 | 54 | EXPOSE 1883 8883 9883 55 | 56 | ADD mosquitto.conf /etc/mosquitto/mosquitto.conf 57 | ADD run.sh /run.sh 58 | RUN chmod +x /run.sh 59 | 60 | ENTRYPOINT ["/run.sh"] 61 | CMD ["mosquitto"] -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin-and-web-socket/v1.6.8b/README.md: -------------------------------------------------------------------------------- 1 | ## Mosquitto Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Mosquitto](https://mosquitto.org/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/mosquitto/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/mosquitto-with-auth-plugin-and-web-socket:v1.4.14` 11 | * `docker pull webratio/mosquitto-with-auth-plugin-and-web-socket:v1.6.7` -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin-and-web-socket/v1.6.8b/mosquitto.conf: -------------------------------------------------------------------------------- 1 | # Config file for mosquitto 2 | retry_interval 20 3 | sys_interval 10 4 | store_clean_interval 10 5 | user mosquitto 6 | max_inflight_messages 40 7 | max_queued_messages 200 8 | queue_qos0_messages false 9 | message_size_limit 0 10 | allow_zero_length_clientid true 11 | persistent_client_expiration 3m 12 | allow_duplicate_messages false 13 | autosave_interval 60 14 | autosave_on_changes false 15 | persistence true 16 | persistence_file mosquitto.db 17 | persistence_location /var/lib/mosquitto/ 18 | log_dest stdout 19 | log_type all 20 | connection_messages true 21 | log_timestamp true 22 | 23 | listener 1883 24 | listener 8883 25 | listener 9883 26 | protocol websockets 27 | tls_version tlsv1.2 28 | require_certificate false -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin-and-web-socket/v1.6.8b/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | chown mosquitto:mosquitto -R /var/lib/mosquitto 5 | 6 | 7 | if [ "$1" = 'mosquitto' ]; then 8 | exec /usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf 9 | fi 10 | 11 | if [ "$1" = 'mosquittoverbose' ]; then 12 | exec /usr/local/sbin/mosquitto -v -c /etc/mosquitto/mosquitto.conf 13 | fi 14 | 15 | exec "$@" -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin-and-web-socket/v1.6.9/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:stable-slim 2 | 3 | ENV MOSQUITTO_VERSION=1.6.9 4 | RUN \ 5 | set -x; \ 6 | apt-get update && apt-get install -y libwebsockets8 libwebsockets-dev libc-ares2 libc-ares-dev openssl uuid uuid-dev wget build-essential git cmake libcurl4-openssl-dev curl \ 7 | && cd /tmp \ 8 | && wget http://mosquitto.org/files/source/mosquitto-$MOSQUITTO_VERSION.tar.gz -O mosquitto.tar.gz \ 9 | && wget http://mosquitto.org/files/source/mosquitto-$MOSQUITTO_VERSION.tar.gz.asc -O mosquitto.tar.gz.asc \ 10 | && mkdir mosquitto-src && tar xfz mosquitto.tar.gz --strip-components=1 -C mosquitto-src \ 11 | && cd mosquitto-src \ 12 | && make WITH_SRV=yes WITH_MEMORY_TRACKING=no WITH_WEBSOCKETS=yes \ 13 | && make install && ldconfig \ 14 | && git clone https://github.com/semioty/mosquitto-auth-plug.git \ 15 | && cd mosquitto-auth-plug \ 16 | && cp config.mk.in config.mk \ 17 | && sed -i "s/BACKEND_HTTP ?= no/BACKEND_HTTP ?= yes/" config.mk \ 18 | && sed -i "s/BACKEND_MYSQL ?= yes/BACKEND_MYSQL ?= no/" config.mk \ 19 | && sed -i "s/CFG_LDFLAGS =/CFG_LDFLAGS = -lcares/" config.mk \ 20 | && sed -i "s/MOSQUITTO_SRC =/MOSQUITTO_SRC = \/tmp\/mosquitto-src\//" config.mk \ 21 | && make \ 22 | && cp np /usr/bin/np \ 23 | && mkdir /mqtt && cp auth-plug.so /mqtt/ \ 24 | && cp auth-plug.so /usr/local/lib/ \ 25 | && useradd -r mosquitto \ 26 | && apt-get purge -y build-essential git wget ca-certificates \ 27 | && apt-get autoremove -y \ 28 | && apt-get -y autoclean \ 29 | && rm -rf /var/cache/apt/* \ 30 | && rm -rf /tmp/* 31 | 32 | VOLUME ["/var/lib/mosquitto"] 33 | 34 | EXPOSE 1883 8883 9883 35 | 36 | ADD mosquitto.conf /etc/mosquitto/mosquitto.conf 37 | ADD run.sh /run.sh 38 | RUN chmod +x /run.sh 39 | 40 | ENTRYPOINT ["/run.sh"] 41 | CMD ["mosquitto"] -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin-and-web-socket/v1.6.9/README.md: -------------------------------------------------------------------------------- 1 | ## Mosquitto Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Mosquitto](https://mosquitto.org/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/mosquitto/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/mosquitto-with-auth-plugin-and-web-socket:v1.4.14` 11 | * `docker pull webratio/mosquitto-with-auth-plugin-and-web-socket:v1.6.7` -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin-and-web-socket/v1.6.9/mosquitto.conf: -------------------------------------------------------------------------------- 1 | # Config file for mosquitto 2 | retry_interval 20 3 | sys_interval 10 4 | store_clean_interval 10 5 | user mosquitto 6 | max_inflight_messages 40 7 | max_queued_messages 200 8 | queue_qos0_messages false 9 | message_size_limit 0 10 | allow_zero_length_clientid true 11 | persistent_client_expiration 3m 12 | allow_duplicate_messages false 13 | autosave_interval 60 14 | autosave_on_changes false 15 | persistence true 16 | persistence_file mosquitto.db 17 | persistence_location /var/lib/mosquitto/ 18 | log_dest stdout 19 | log_type all 20 | connection_messages true 21 | log_timestamp true 22 | 23 | listener 1883 24 | listener 8883 25 | listener 9883 26 | protocol websockets 27 | tls_version tlsv1.2 28 | require_certificate false -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin-and-web-socket/v1.6.9/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | chown mosquitto:mosquitto -R /var/lib/mosquitto 5 | 6 | 7 | if [ "$1" = 'mosquitto' ]; then 8 | exec /usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf 9 | fi 10 | 11 | if [ "$1" = 'mosquittoverbose' ]; then 12 | exec /usr/local/sbin/mosquitto -v -c /etc/mosquitto/mosquitto.conf 13 | fi 14 | 15 | exec "$@" -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin-and-web-socket/v1.6.9b/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:stable-slim 2 | 3 | ENV MOSQUITTO_VERSION=1.6.9 4 | RUN \ 5 | set -x; \ 6 | apt-get update && apt-get install -y libwebsockets8 libwebsockets-dev libc-ares2 libc-ares-dev openssl uuid uuid-dev wget build-essential git cmake libcurl4-openssl-dev curl \ 7 | && cd /tmp \ 8 | && wget http://mosquitto.org/files/source/mosquitto-$MOSQUITTO_VERSION.tar.gz -O mosquitto.tar.gz \ 9 | && wget http://mosquitto.org/files/source/mosquitto-$MOSQUITTO_VERSION.tar.gz.asc -O mosquitto.tar.gz.asc \ 10 | && mkdir mosquitto-src && tar xfz mosquitto.tar.gz --strip-components=1 -C mosquitto-src \ 11 | && cd mosquitto-src \ 12 | && make WITH_SRV=yes WITH_MEMORY_TRACKING=no WITH_WEBSOCKETS=yes \ 13 | && make install && ldconfig \ 14 | && git clone https://github.com/semioty/mosquitto-auth-plug.git \ 15 | && cd mosquitto-auth-plug \ 16 | && cp config.mk.in config.mk \ 17 | && sed -i "s/BACKEND_HTTP ?= no/BACKEND_HTTP ?= yes/" config.mk \ 18 | && sed -i "s/BACKEND_MYSQL ?= yes/BACKEND_MYSQL ?= no/" config.mk \ 19 | && sed -i "s/CFG_LDFLAGS =/CFG_LDFLAGS = -lcares/" config.mk \ 20 | && sed -i "s/MOSQUITTO_SRC =/MOSQUITTO_SRC = \/tmp\/mosquitto-src\//" config.mk \ 21 | && make \ 22 | && cp np /usr/bin/np \ 23 | && mkdir /mqtt && cp auth-plug.so /mqtt/ \ 24 | && cp auth-plug.so /usr/local/lib/ \ 25 | && useradd -r mosquitto \ 26 | && apt-get purge -y build-essential git wget ca-certificates \ 27 | && apt-get autoremove -y \ 28 | && apt-get -y autoclean \ 29 | && rm -rf /var/cache/apt/* \ 30 | && rm -rf /tmp/* 31 | 32 | VOLUME ["/var/lib/mosquitto"] 33 | 34 | EXPOSE 1883 8883 9883 35 | 36 | ADD mosquitto.conf /etc/mosquitto/mosquitto.conf 37 | ADD run.sh /run.sh 38 | RUN chmod +x /run.sh 39 | 40 | ENTRYPOINT ["/run.sh"] 41 | CMD ["mosquitto"] -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin-and-web-socket/v1.6.9b/README.md: -------------------------------------------------------------------------------- 1 | ## Mosquitto Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Mosquitto](https://mosquitto.org/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/mosquitto/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/mosquitto-with-auth-plugin-and-web-socket:v1.4.14` 11 | * `docker pull webratio/mosquitto-with-auth-plugin-and-web-socket:v1.6.7` -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin-and-web-socket/v1.6.9b/mosquitto.conf: -------------------------------------------------------------------------------- 1 | # Config file for mosquitto 2 | retry_interval 20 3 | sys_interval 10 4 | store_clean_interval 10 5 | user mosquitto 6 | max_inflight_messages 40 7 | max_queued_messages 200 8 | queue_qos0_messages false 9 | message_size_limit 0 10 | allow_zero_length_clientid true 11 | persistent_client_expiration 3m 12 | allow_duplicate_messages false 13 | autosave_interval 60 14 | autosave_on_changes false 15 | persistence true 16 | persistence_file mosquitto.db 17 | persistence_location /var/lib/mosquitto/ 18 | log_dest stdout 19 | log_type all 20 | connection_messages true 21 | log_timestamp true 22 | 23 | listener 1883 24 | listener 8883 25 | listener 9883 26 | protocol websockets 27 | tls_version tlsv1.2 28 | require_certificate false -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin-and-web-socket/v1.6.9b/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | chown mosquitto:mosquitto -R /var/lib/mosquitto 5 | 6 | 7 | if [ "$1" = 'mosquitto' ]; then 8 | exec /usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf 9 | fi 10 | 11 | if [ "$1" = 'mosquittoverbose' ]; then 12 | exec /usr/local/sbin/mosquitto -v -c /etc/mosquitto/mosquitto.conf 13 | fi 14 | 15 | exec "$@" -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin/v1.4.14/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:jessie 2 | 3 | ENV MOSQUITTO_VERSION=1.4.14 4 | 5 | RUN \ 6 | set -x; \ 7 | apt-get update && apt-get install -y --no-install-recommends \ 8 | libc-ares-dev git libmysqlclient-dev libssl-dev uuid-dev build-essential wget ca-certificates \ 9 | curl libcurl4-openssl-dev libc-ares2 libcurl3 \ 10 | && cd /tmp \ 11 | && wget http://mosquitto.org/files/source/mosquitto-$MOSQUITTO_VERSION.tar.gz -O mosquitto.tar.gz \ 12 | && wget http://mosquitto.org/files/source/mosquitto-$MOSQUITTO_VERSION.tar.gz.asc -O mosquitto.tar.gz.asc \ 13 | && gpg --keyserver pgp.mit.edu --recv B3E717B7 \ 14 | && gpg --verify mosquitto.tar.gz.asc \ 15 | && mkdir mosquitto-src && tar xfz mosquitto.tar.gz --strip-components=1 -C mosquitto-src \ 16 | && cd mosquitto-src \ 17 | && make WITH_SRV=yes WITH_MEMORY_TRACKING=no \ 18 | && make install && ldconfig \ 19 | && git clone https://github.com/jpmens/mosquitto-auth-plug.git \ 20 | && cd mosquitto-auth-plug \ 21 | && git checkout 7ff04a68c -b stable_branch \ 22 | && cp config.mk.in config.mk \ 23 | && sed -i "s/BACKEND_HTTP ?= no/BACKEND_HTTP ?= yes/" config.mk \ 24 | && sed -i "s/BACKEND_MYSQL ?= yes/BACKEND_MYSQL ?= no/" config.mk \ 25 | && sed -i "s/CFG_LDFLAGS =/CFG_LDFLAGS = -lcares/" config.mk \ 26 | && sed -i "s/MOSQUITTO_SRC =/MOSQUITTO_SRC = \/tmp\/mosquitto-src\//" config.mk \ 27 | && make \ 28 | && cp np /usr/bin/np \ 29 | && mkdir /mqtt && cp auth-plug.so /mqtt/ \ 30 | && cp auth-plug.so /usr/local/lib/ \ 31 | && useradd -r mosquitto \ 32 | && apt-get purge -y build-essential git wget ca-certificates \ 33 | && apt-get autoremove -y \ 34 | && apt-get -y autoclean \ 35 | && rm -rf /var/cache/apt/* \ 36 | && rm -rf /tmp/* 37 | 38 | VOLUME ["/var/lib/mosquitto"] 39 | 40 | EXPOSE 1883 8883 41 | 42 | 43 | ADD mosquitto.conf /etc/mosquitto/mosquitto.conf 44 | ADD run.sh /run.sh 45 | RUN chmod +x /run.sh 46 | 47 | ENTRYPOINT ["/run.sh"] 48 | CMD ["mosquitto"] -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin/v1.4.14/README.md: -------------------------------------------------------------------------------- 1 | ## Mosquitto Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Mosquitto](https://mosquitto.org/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/mosquitto/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/mosquitto-with-auth-plugin:v1.4.14` -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin/v1.4.14/mosquitto.conf: -------------------------------------------------------------------------------- 1 | # Config file for mosquitto 2 | retry_interval 20 3 | sys_interval 10 4 | store_clean_interval 10 5 | user mosquitto 6 | max_inflight_messages 40 7 | max_queued_messages 200 8 | queue_qos0_messages false 9 | message_size_limit 0 10 | allow_zero_length_clientid true 11 | persistent_client_expiration 3m 12 | allow_duplicate_messages false 13 | autosave_interval 60 14 | autosave_on_changes false 15 | persistence true 16 | persistence_file mosquitto.db 17 | persistence_location /var/lib/mosquitto/ 18 | log_dest stdout 19 | log_type all 20 | connection_messages true 21 | log_timestamp true 22 | 23 | listener 1883 24 | listener 8883 25 | tls_version tlsv1.2 26 | require_certificate false -------------------------------------------------------------------------------- /mosquitto-with-auth-plugin/v1.4.14/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | chown mosquitto:mosquitto -R /var/lib/mosquitto 5 | 6 | 7 | if [ "$1" = 'mosquitto' ]; then 8 | exec /usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf 9 | fi 10 | 11 | if [ "$1" = 'mosquittoverbose' ]; then 12 | exec /usr/local/sbin/mosquitto -v -c /etc/mosquitto/mosquitto.conf 13 | fi 14 | 15 | exec "$@" -------------------------------------------------------------------------------- /mosquitto-with-aws-cli/v1.4.10/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM jllopis/mosquitto:v1.4.10 2 | 3 | RUN mkdir -p /aws && \ 4 | apk -Uuv add groff less python py-pip && \ 5 | pip install awscli && \ 6 | apk --purge -v del py-pip && \ 7 | rm /var/cache/apk/* -------------------------------------------------------------------------------- /mosquitto-with-aws-cli/v1.4.12/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM jllopis/mosquitto:v1.4.12 2 | 3 | RUN mkdir -p /aws && \ 4 | apk -Uuv add groff less python py-pip && \ 5 | pip install awscli && \ 6 | apk --purge -v del py-pip && \ 7 | rm /var/cache/apk/* -------------------------------------------------------------------------------- /mosquitto-with-aws-cli/v1.4.14/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM jllopis/mosquitto:v1.4.14 2 | 3 | RUN mkdir -p /aws && \ 4 | apk -Uuv add groff less python py-pip && \ 5 | pip install awscli && \ 6 | apk --purge -v del py-pip && \ 7 | rm /var/cache/apk/* -------------------------------------------------------------------------------- /mosquitto-with-aws-cli/v1.4.14/README.md: -------------------------------------------------------------------------------- 1 | ## Mosquitto Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Mosquitto](https://mosquitto.org/) combined with [AWS CLI](https://aws.amazon.com/cli/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/mosquitto-with-aws-cli/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/mosquitto-with-aws-cli:v1.4.14` -------------------------------------------------------------------------------- /node-exporter/v0.13.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM prom/node-exporter:v0.13.0 2 | 3 | ADD docker-entrypoint.sh / 4 | RUN chmod +x /docker-entrypoint.sh 5 | 6 | ENV "NODE_EXPORTER_BIN=/bin/node_exporter" 7 | 8 | ENTRYPOINT [ "/docker-entrypoint.sh" ] 9 | CMD [ "/bin/node_exporter" ] -------------------------------------------------------------------------------- /node-exporter/v0.13.0/README.md: -------------------------------------------------------------------------------- 1 | ## Prometheus Node Exporter Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Prometheus Node Exporter](https://github.com/prometheus/node_exporter) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/mosquitto-with-aws-cli/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/node-exporter:v0.13.0` -------------------------------------------------------------------------------- /node-exporter/v0.13.0/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | mkdir -p /etc/node-exporter/ 4 | echo "docker_node{id=\"$DOCKER_NODE_ID\",hostname=\"$DOCKER_NODE_HOSTNAME\"} 1" > /etc/node-exporter/host_hostname.prom 5 | 6 | set -- $NODE_EXPORTER_BIN "$@" 7 | 8 | exec "$@" -------------------------------------------------------------------------------- /nodejs-http-server/0.9.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:4 2 | 3 | ENV HTTP_SERVER_VERSION 0.9.0 4 | ENV PUBLIC_FOLDER /opt/www 5 | 6 | RUN mkdir -p $PUBLIC_FOLDER 7 | RUN npm install -g http-server@0.9.0 8 | 9 | CMD http-server $PUBLIC_FOLDER 10 | 11 | EXPOSE 8080 -------------------------------------------------------------------------------- /nodejs-http-server/0.9.0/README.md: -------------------------------------------------------------------------------- 1 | ## http-server Dockerfile 2 | 3 | This repository contains **Dockerfile** of [http-server](https://github.com/indexzero/http-server/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/nodejs-http-server:0.9.0` 11 | 12 | ### Usage 13 | 14 | docker run -v :/opt/www -p :8080 15 | -------------------------------------------------------------------------------- /nodejs-with-android-sdk/0.10.33/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/android-sdk 2 | 3 | # Installs Node.js 4 | ENV NODE_VERSION 0.10.33 5 | RUN cd && \ 6 | wget -q http://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz && \ 7 | tar -xzf node-v${NODE_VERSION}-linux-x64.tar.gz && \ 8 | mv node-v${NODE_VERSION}-linux-x64 /opt/node && \ 9 | rm node-v${NODE_VERSION}-linux-x64.tar.gz 10 | ENV PATH ${PATH}:/opt/node/bin -------------------------------------------------------------------------------- /nodejs-with-android-sdk/0.10.36/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/android-sdk 2 | 3 | # Installs Node.js 4 | ENV NODE_VERSION 0.10.36 5 | RUN cd && \ 6 | wget -q http://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz && \ 7 | tar -xzf node-v${NODE_VERSION}-linux-x64.tar.gz && \ 8 | mv node-v${NODE_VERSION}-linux-x64 /opt/node && \ 9 | rm node-v${NODE_VERSION}-linux-x64.tar.gz 10 | ENV PATH ${PATH}:/opt/node/bin -------------------------------------------------------------------------------- /nodejs-with-android-sdk/10.14.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/android-sdk:r28.0.3 2 | 3 | # Installs Node.js 4 | RUN curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - && \ 5 | sudo apt-get install -y nodejs -------------------------------------------------------------------------------- /nodejs-with-android-sdk/10.14.0/README.md: -------------------------------------------------------------------------------- 1 | ## Gitblit Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Node.js](http://nodejs.org/) combined with [Android SDK](https://developer.android.com/sdk/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/android-sdk-with-nodejs/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/nodejs-with-android-sdk:0.10.33` 11 | * `docker pull webratio/nodejs-with-android-sdk:0.10.36` 12 | * `docker pull webratio/nodejs-with-android-sdk:4.4.1` 13 | * `docker pull webratio/nodejs-with-android-sdk:6.9.5` 14 | * `docker pull webratio/nodejs-with-android-sdk:8.9.4` 15 | * `docker pull webratio/nodejs-with-android-sdk:10.14.0` 16 | * `docker pull webratio/nodejs-with-android-sdk` -------------------------------------------------------------------------------- /nodejs-with-android-sdk/12.13.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/android-sdk:r29.0.2 2 | 3 | # Installs Node.js 4 | RUN curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - && \ 5 | sudo apt-get install -y nodejs -------------------------------------------------------------------------------- /nodejs-with-android-sdk/12.13.1/README.md: -------------------------------------------------------------------------------- 1 | ## Gitblit Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Node.js](http://nodejs.org/) combined with [Android SDK](https://developer.android.com/sdk/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/android-sdk-with-nodejs/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/nodejs-with-android-sdk:0.10.33` 11 | * `docker pull webratio/nodejs-with-android-sdk:0.10.36` 12 | * `docker pull webratio/nodejs-with-android-sdk:4.4.1` 13 | * `docker pull webratio/nodejs-with-android-sdk:6.9.5` 14 | * `docker pull webratio/nodejs-with-android-sdk:8.9.4` 15 | * `docker pull webratio/nodejs-with-android-sdk:10.14.0` 16 | * `docker pull webratio/nodejs-with-android-sdk:12.13.1` 17 | * `docker pull webratio/nodejs-with-android-sdk` -------------------------------------------------------------------------------- /nodejs-with-android-sdk/14_sdk-30/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/android-sdk:r30.0.3 2 | 3 | # Installs Nodesource GPG key to work around a bug in the Node install script 4 | RUN curl --silent https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add - 5 | 6 | # Installs Node.js 7 | RUN curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - && \ 8 | sudo apt-get install -y nodejs 9 | -------------------------------------------------------------------------------- /nodejs-with-android-sdk/14_sdk-30/README.md: -------------------------------------------------------------------------------- 1 | ## NodeJS with Android SDK Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Node.js](http://nodejs.org/) combined with [Android SDK](https://developer.android.com/sdk/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/android-sdk-with-nodejs/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/nodejs-with-android-sdk` 11 | -------------------------------------------------------------------------------- /nodejs-with-android-sdk/14_sdk-32/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/android-sdk:r32.0.0 2 | 3 | # Installs Nodesource GPG key to work around a bug in the Node install script 4 | RUN curl --silent https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add - 5 | 6 | # Installs Node.js 7 | RUN curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - && \ 8 | sudo apt-get install -y nodejs 9 | -------------------------------------------------------------------------------- /nodejs-with-android-sdk/14_sdk-32/README.md: -------------------------------------------------------------------------------- 1 | ## NodeJS with Android SDK Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Node.js](http://nodejs.org/) combined with [Android SDK](https://developer.android.com/sdk/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/android-sdk-with-nodejs/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/nodejs-with-android-sdk` 11 | -------------------------------------------------------------------------------- /nodejs-with-android-sdk/16_sdk-33/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/android-sdk:r33.0.2 2 | 3 | # Installs Nodesource GPG key to work around a bug in the Node install script 4 | RUN apt-get update && \ 5 | apt-get install -y gnupg && \ 6 | curl --silent https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - 7 | 8 | # Installs Node.js 9 | RUN curl -sL https://deb.nodesource.com/setup_16.x | bash - && \ 10 | apt-get install -y nodejs && \ 11 | apt-get clean 12 | -------------------------------------------------------------------------------- /nodejs-with-android-sdk/16_sdk-33/README.md: -------------------------------------------------------------------------------- 1 | ## NodeJS with Android SDK Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Node.js](http://nodejs.org/) combined with [Android SDK](https://developer.android.com/sdk/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/android-sdk-with-nodejs/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/nodejs-with-android-sdk` 11 | -------------------------------------------------------------------------------- /nodejs-with-android-sdk/16_sdk-34/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/android-sdk:r34.0.0 2 | 3 | # Installs Nodesource GPG key to work around a bug in the Node install script 4 | RUN apt-get update && \ 5 | apt-get install -y gnupg && \ 6 | curl --silent https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - 7 | 8 | # Installs Node.js 9 | RUN curl -sL https://deb.nodesource.com/setup_16.x | bash - && \ 10 | apt-get install -y nodejs && \ 11 | apt-get clean 12 | -------------------------------------------------------------------------------- /nodejs-with-android-sdk/16_sdk-34/README.md: -------------------------------------------------------------------------------- 1 | ## NodeJS with Android SDK Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Node.js](http://nodejs.org/) combined with [Android SDK](https://developer.android.com/sdk/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/android-sdk-with-nodejs/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/nodejs-with-android-sdk` 11 | -------------------------------------------------------------------------------- /nodejs-with-android-sdk/4.4.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/android-sdk:r24.4.1 2 | 3 | # Installs Node.js 4 | ENV NODE_VERSION 4.4.1 5 | RUN cd && \ 6 | wget -q http://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz && \ 7 | tar -xzf node-v${NODE_VERSION}-linux-x64.tar.gz && \ 8 | mv node-v${NODE_VERSION}-linux-x64 /opt/node && \ 9 | rm node-v${NODE_VERSION}-linux-x64.tar.gz 10 | ENV PATH ${PATH}:/opt/node/bin -------------------------------------------------------------------------------- /nodejs-with-android-sdk/6.9.5/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/android-sdk:r26.0.2 2 | 3 | # Installs Node.js 4 | ENV NODE_VERSION 6.9.5 5 | RUN cd && \ 6 | wget -q http://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz && \ 7 | tar -xzf node-v${NODE_VERSION}-linux-x64.tar.gz && \ 8 | mv node-v${NODE_VERSION}-linux-x64 /opt/node && \ 9 | rm node-v${NODE_VERSION}-linux-x64.tar.gz 10 | ENV PATH ${PATH}:/opt/node/bin -------------------------------------------------------------------------------- /nodejs-with-android-sdk/8.9.4/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/android-sdk:r26.0.2 2 | 3 | # Installs Node.js 4 | RUN curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - && \ 5 | sudo apt-get install -y nodejs -------------------------------------------------------------------------------- /nodejs-with-android-sdk/8.9.4/README.md: -------------------------------------------------------------------------------- 1 | ## Gitblit Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Node.js](http://nodejs.org/) combined with [Android SDK](https://developer.android.com/sdk/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/android-sdk-with-nodejs/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/nodejs-with-android-sdk:0.10.33` 11 | * `docker pull webratio/nodejs-with-android-sdk:0.10.36` 12 | * `docker pull webratio/nodejs-with-android-sdk:4.4.1` 13 | * `docker pull webratio/nodejs-with-android-sdk:6.9.5` 14 | * `docker pull webratio/nodejs-with-android-sdk:8.9.4` 15 | * `docker pull webratio/nodejs-with-android-sdk` -------------------------------------------------------------------------------- /phonegap/3.5.0-0.21.18/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk 2 | 3 | # Installs PhoneGap 4 | # Forces a create and build in order to preload libraries 5 | ENV PHONEGAP_VERSION 3.5.0-0.21.18 6 | RUN npm install -g npm && \ 7 | npm install -g phonegap@${PHONEGAP_VERSION} && \ 8 | npm install -g xmldom && \ 9 | cd /tmp && \ 10 | phonegap create fakeapp && \ 11 | cd /tmp/fakeapp && \ 12 | phonegap build android && \ 13 | cd && \ 14 | rm -rf /tmp/fakeapp 15 | 16 | VOLUME ["/data"] 17 | WORKDIR /data 18 | 19 | EXPOSE 3000 20 | -------------------------------------------------------------------------------- /phonegap/3.6.0-0.21.19/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk 2 | 3 | # Installs PhoneGap 4 | # Forces a create and build in order to preload libraries 5 | ENV PHONEGAP_VERSION 3.6.0-0.21.19 6 | RUN npm install -g npm && \ 7 | npm install -g phonegap@${PHONEGAP_VERSION} && \ 8 | npm install -g xmldom && \ 9 | cd /tmp && \ 10 | phonegap create fakeapp && \ 11 | cd /tmp/fakeapp && \ 12 | phonegap build android && \ 13 | cd && \ 14 | rm -rf /tmp/fakeapp 15 | 16 | VOLUME ["/data"] 17 | WORKDIR /data 18 | 19 | EXPOSE 3000 -------------------------------------------------------------------------------- /phonegap/3.6.3-0.22.7/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk 2 | 3 | # Installs PhoneGap 4 | # Forces a create and build in order to preload libraries 5 | ENV PHONEGAP_VERSION 3.6.3-0.22.7 6 | RUN npm install -g npm && \ 7 | npm install -g phonegap@${PHONEGAP_VERSION} && \ 8 | npm install -g xmldom && \ 9 | npm install -g xpath && \ 10 | cd /tmp && \ 11 | phonegap create fakeapp && \ 12 | cd /tmp/fakeapp && \ 13 | phonegap build android && \ 14 | cd && \ 15 | rm -rf /tmp/fakeapp 16 | 17 | VOLUME ["/data"] 18 | WORKDIR /data 19 | 20 | EXPOSE 3000 -------------------------------------------------------------------------------- /phonegap/4.0.0-0.22.7/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk 2 | 3 | # Installs PhoneGap 4 | # Forces a create and build in order to preload libraries 5 | ENV PHONEGAP_VERSION 4.0.0-0.22.7 6 | RUN npm install -g npm && \ 7 | npm install -g phonegap@${PHONEGAP_VERSION} && \ 8 | npm install -g xmldom && \ 9 | npm install -g xpath && \ 10 | cd /tmp && \ 11 | phonegap create fakeapp && \ 12 | cd /tmp/fakeapp && \ 13 | phonegap build android && \ 14 | cd && \ 15 | rm -rf /tmp/fakeapp 16 | 17 | VOLUME ["/data"] 18 | WORKDIR /data 19 | 20 | EXPOSE 3000 -------------------------------------------------------------------------------- /phonegap/4.1.2-0.22.12/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk 2 | 3 | # Installs PhoneGap 4 | # Forces a create and build in order to preload libraries 5 | ENV PHONEGAP_VERSION 4.1.2-0.22.12 6 | RUN npm install -g npm && \ 7 | npm install -g phonegap@${PHONEGAP_VERSION} && \ 8 | npm install -g xmldom && \ 9 | npm install -g xpath && \ 10 | cd /tmp && \ 11 | phonegap create fakeapp && \ 12 | cd /tmp/fakeapp && \ 13 | phonegap build android && \ 14 | cd && \ 15 | rm -rf /tmp/fakeapp 16 | 17 | VOLUME ["/data"] 18 | WORKDIR /data 19 | 20 | EXPOSE 3000 -------------------------------------------------------------------------------- /phonegap/4.2.0-0.24.2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk 2 | 3 | # Installs PhoneGap 4 | # Forces a create and build in order to preload libraries 5 | ENV PHONEGAP_VERSION 4.2.0-0.24.2 6 | RUN npm install -g npm && \ 7 | npm install -g phonegap@${PHONEGAP_VERSION} && \ 8 | npm install -g xmldom && \ 9 | npm install -g xpath && \ 10 | cd /tmp && \ 11 | phonegap create fakeapp && \ 12 | cd /tmp/fakeapp && \ 13 | phonegap build android && \ 14 | cd && \ 15 | rm -rf /tmp/fakeapp 16 | 17 | VOLUME ["/data"] 18 | WORKDIR /data 19 | 20 | EXPOSE 3000 -------------------------------------------------------------------------------- /phonegap/6.0.3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk:4.4.1 2 | 3 | # Installs PhoneGap 4 | # Forces a create and build in order to preload libraries 5 | ENV PHONEGAP_VERSION 6.0.3 6 | RUN npm install -g npm && \ 7 | npm install -g phonegap@${PHONEGAP_VERSION} && \ 8 | npm install -g xmldom && \ 9 | npm install -g xpath && \ 10 | cd /tmp && \ 11 | phonegap create fakeapp && \ 12 | cd /tmp/fakeapp && \ 13 | phonegap build android && \ 14 | cd && \ 15 | rm -rf /tmp/fakeapp 16 | 17 | VOLUME ["/data"] 18 | WORKDIR /data 19 | 20 | EXPOSE 3000 -------------------------------------------------------------------------------- /phonegap/6.1.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk:4.4.1 2 | 3 | # Installs PhoneGap 4 | # Forces a create and build in order to preload libraries 5 | ENV PHONEGAP_VERSION 6.1.0 6 | RUN npm install -g npm && \ 7 | npm install -g phonegap@${PHONEGAP_VERSION} && \ 8 | npm install -g xmldom && \ 9 | npm install -g xpath && \ 10 | cd /tmp && \ 11 | phonegap create fakeapp && \ 12 | cd /tmp/fakeapp && \ 13 | phonegap build android && \ 14 | cd && \ 15 | rm -rf /tmp/fakeapp 16 | 17 | VOLUME ["/data"] 18 | WORKDIR /data 19 | 20 | EXPOSE 3000 -------------------------------------------------------------------------------- /phonegap/6.2.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk:4.4.1 2 | 3 | # Installs PhoneGap 4 | # Forces a create and build in order to preload libraries 5 | ENV PHONEGAP_VERSION 6.2.0 6 | RUN npm install -g npm && \ 7 | npm install -g phonegap@${PHONEGAP_VERSION} && \ 8 | npm install -g xmldom && \ 9 | npm install -g xpath && \ 10 | cd /tmp && \ 11 | phonegap create fakeapp && \ 12 | cd /tmp/fakeapp && \ 13 | phonegap build android && \ 14 | cd && \ 15 | rm -rf /tmp/fakeapp 16 | 17 | VOLUME ["/data"] 18 | WORKDIR /data 19 | 20 | EXPOSE 3000 -------------------------------------------------------------------------------- /phonegap/6.2.2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk:4.4.1 2 | 3 | # Installs PhoneGap 4 | # Forces a create and build in order to preload libraries 5 | ENV PHONEGAP_VERSION 6.2.2 6 | RUN apt-get update -y && \ 7 | apt-get install -y git-core && \ 8 | rm -rf /var/lib/apt/lists/* && \ 9 | apt-get autoremove -y && \ 10 | apt-get clean 11 | RUN npm install -g npm && \ 12 | npm install -g phonegap@${PHONEGAP_VERSION} && \ 13 | npm install -g xmldom && \ 14 | npm install -g xpath && \ 15 | cd /tmp && \ 16 | phonegap create fakeapp && \ 17 | cd /tmp/fakeapp && \ 18 | phonegap build android && \ 19 | cd && \ 20 | rm -rf /tmp/fakeapp 21 | 22 | VOLUME ["/data"] 23 | WORKDIR /data 24 | 25 | EXPOSE 3000 -------------------------------------------------------------------------------- /phonegap/6.2.2_java8/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/phonegap:6.2.2 2 | 3 | RUN apt-get update -y && \ 4 | apt-get install -y dos2unix software-properties-common curl && \ 5 | add-apt-repository ppa:webupd8team/java -y && \ 6 | apt-get update -y && \ 7 | echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections && \ 8 | apt-get install -y oracle-java8-installer && \ 9 | apt-get remove software-properties-common -y && \ 10 | apt-get autoremove -y && \ 11 | apt-get clean 12 | ENV JAVA_HOME /usr/lib/jvm/java-8-oracle -------------------------------------------------------------------------------- /phonegap/7.1.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk:8.9.4 2 | 3 | # Installs PhoneGap 4 | # Forces a create and build in order to preload libraries 5 | ENV PHONEGAP_VERSION 7.1.1 6 | ENV ANDROID_PLATFORM_VERSION 7.0.0 7 | ENV GRADLE_HOME /opt/gradle 8 | ENV PATH ${PATH}:${GRADLE_HOME}/bin 9 | RUN apt-get update -y && \ 10 | apt-get install -y git-core && \ 11 | rm -rf /var/lib/apt/lists/* && \ 12 | apt-get autoremove -y && \ 13 | apt-get clean && \ 14 | npm install -g phonegap@${PHONEGAP_VERSION} && \ 15 | npm install -g xmldom && \ 16 | npm install -g xpath && \ 17 | npm install -g fs-extra && \ 18 | npm install -g lodash && \ 19 | npm install -g iconv-lite && \ 20 | npm install -g xml2js && \ 21 | npm install -g xcode && \ 22 | npm install -g xml-writer && \ 23 | wget -P /opt/ https://services.gradle.org/distributions/gradle-4.1-all.zip && \ 24 | unzip /opt/gradle-4.1-all.zip -d /opt/ && \ 25 | mv /opt/gradle-4.1 ${GRADLE_HOME} && \ 26 | cd /tmp && \ 27 | phonegap create fakeapp --no-insight && \ 28 | cd /tmp/fakeapp && \ 29 | sed -i 's|name="android-minSdkVersion" value="14"|name="android-minSdkVersion" value="19"|g' /tmp/fakeapp/config.xml && \ 30 | phonegap cordova platform add android@${ANDROID_PLATFORM_VERSION} --force && \ 31 | phonegap build android --verbose && \ 32 | cd && \ 33 | rm -rf /tmp/fakeapp 34 | ENV CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL file:///opt/gradle-4.1-all.zip 35 | ADD init.gradle /root/.gradle 36 | 37 | VOLUME ["/data"] 38 | WORKDIR /data 39 | 40 | EXPOSE 3000 -------------------------------------------------------------------------------- /phonegap/7.1.1/README.md: -------------------------------------------------------------------------------- 1 | ## PhoneGap Dockerfile 2 | 3 | This repository contains **Dockerfile** of [PhoneGap](http://phonegap.com/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/phonegap/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/phonegap` 11 | * `docker pull webratio/phonegap:3.5.0` 12 | * `docker pull webratio/phonegap:3.5.0-0.21.18` 13 | * `docker pull webratio/phonegap:3.6.0` 14 | * `docker pull webratio/phonegap:3.6.0-0.21.19` 15 | * `docker pull webratio/phonegap:3.6.3` 16 | * `docker pull webratio/phonegap:3.6.3-0.22.7` 17 | * `docker pull webratio/phonegap:4.0.0` 18 | * `docker pull webratio/phonegap:4.0.0-0.22.7` 19 | * `docker pull webratio/phonegap:4.1.2` 20 | * `docker pull webratio/phonegap:4.1.2-0.22.12` 21 | * `docker pull webratio/phonegap:4.2.0` 22 | * `docker pull webratio/phonegap:4.2.0-0.24.2` 23 | * `docker pull webratio/phonegap:6.0.3` 24 | * `docker pull webratio/phonegap:6.1.0` 25 | * `docker pull webratio/phonegap:6.2.0` 26 | * `docker pull webratio/phonegap:6.2.2` 27 | * `docker pull webratio/phonegap:7.1.1` 28 | 29 | ### Usage 30 | 31 | #### Run `phonegap create` 32 | 33 | docker run -v :/data webratio/phonegap phonegap create 34 | 35 | #### Run `phonegap serve` 36 | 37 | docker run -d -p :3000 -v :/data webratio/phonegap phonegap serve -p 3000 38 | 39 | #### Run `phonegap build android` 40 | 41 | docker run -v :/data webratio/phonegap phonegap build android 42 | -------------------------------------------------------------------------------- /phonegap/7.1.1/init.gradle: -------------------------------------------------------------------------------- 1 | // Defines the correct order of the repositories 2 | 3 | buildscript { 4 | repositories { 5 | maven { 6 | url "https://maven.google.com" 7 | } 8 | jcenter() 9 | } 10 | } 11 | 12 | allprojects { 13 | repositories { 14 | maven { 15 | url "https://maven.google.com" 16 | } 17 | jcenter() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /phonegap/7.1.1_android-30/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk:14_sdk-30 2 | 3 | # Installs PhoneGap 4 | # Forces a create and build in order to preload libraries 5 | ENV PHONEGAP_VERSION 7.1.1 6 | ENV ANDROID_PLATFORM_VERSION 8.1.0 7 | ENV GRADLE_VERSION 4.10.3 8 | ENV GRADLE_HOME /opt/gradle 9 | ENV ANDROID_SDK_ROOT /opt/sdk 10 | ENV PATH ${PATH}:${GRADLE_HOME}/bin 11 | RUN apt-get update -y && \ 12 | apt-get install -y git-core && \ 13 | rm -rf /var/lib/apt/lists/* && \ 14 | apt-get autoremove -y && \ 15 | apt-get clean && \ 16 | npm install -g phonegap@${PHONEGAP_VERSION} && \ 17 | npm install -g xmldom && \ 18 | npm install -g xpath && \ 19 | npm install -g fs-extra && \ 20 | npm install -g lodash && \ 21 | npm install -g iconv-lite && \ 22 | npm install -g xml2js && \ 23 | npm install -g xcode && \ 24 | npm install -g xml-writer && \ 25 | wget -P /opt/ https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip && \ 26 | unzip /opt/gradle-${GRADLE_VERSION}-all.zip -d /opt/ && \ 27 | mv /opt/gradle-${GRADLE_VERSION} ${GRADLE_HOME} && \ 28 | cd /tmp && \ 29 | phonegap create fakeapp --no-insight && \ 30 | cd /tmp/fakeapp && \ 31 | sed -i 's|name="android-minSdkVersion" value="14"|name="android-minSdkVersion" value="19"|g' /tmp/fakeapp/config.xml && \ 32 | sed -i '//a \ \ \ \ \ \ \ \ ' /tmp/fakeapp/config.xml && \ 33 | phonegap cordova platform add android@${ANDROID_PLATFORM_VERSION} --force && \ 34 | phonegap build android --verbose && \ 35 | cd && \ 36 | rm -rf /tmp/fakeapp 37 | ENV CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL file:///opt/gradle-${GRADLE_VERSION}-all.zip 38 | ADD init.gradle /root/.gradle 39 | 40 | VOLUME ["/data"] 41 | WORKDIR /data 42 | 43 | EXPOSE 3000 44 | -------------------------------------------------------------------------------- /phonegap/7.1.1_android-30/README.md: -------------------------------------------------------------------------------- 1 | ## PhoneGap Dockerfile 2 | 3 | This repository contains **Dockerfile** of [PhoneGap](http://phonegap.com/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/phonegap/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/phonegap` 11 | 12 | ### Usage 13 | 14 | #### Run `phonegap create` 15 | 16 | docker run -v :/data webratio/phonegap phonegap create 17 | 18 | #### Run `phonegap serve` 19 | 20 | docker run -d -p :3000 -v :/data webratio/phonegap phonegap serve -p 3000 21 | 22 | #### Run `phonegap build android` 23 | 24 | docker run -v :/data webratio/phonegap phonegap build android 25 | -------------------------------------------------------------------------------- /phonegap/7.1.1_android-30/init.gradle: -------------------------------------------------------------------------------- 1 | // Defines the correct order of the repositories 2 | 3 | buildscript { 4 | repositories { 5 | maven { 6 | url "https://maven.google.com" 7 | } 8 | jcenter() 9 | } 10 | } 11 | 12 | allprojects { 13 | repositories { 14 | maven { 15 | url "https://maven.google.com" 16 | } 17 | jcenter() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /phonegap/7.1.1_android-32/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk:14_sdk-32 2 | 3 | # Installs PhoneGap 4 | # Forces a create and build in order to preload libraries 5 | ENV PHONEGAP_VERSION 7.1.1 6 | ENV ANDROID_PLATFORM_VERSION 11.0.0 7 | ENV GRADLE_VERSION 7.4.2 8 | ENV GRADLE_HOME /opt/gradle 9 | ENV ANDROID_SDK_ROOT $ANDROID_HOME 10 | ENV PATH ${PATH}:${GRADLE_HOME}/bin 11 | RUN apt-get update -y && \ 12 | apt-get install -y git-core && \ 13 | rm -rf /var/lib/apt/lists/* && \ 14 | apt-get autoremove -y && \ 15 | apt-get clean && \ 16 | npm install -g phonegap@${PHONEGAP_VERSION} && \ 17 | npm install -g xmldom xpath fs-extra lodash iconv-lite xml2js xcode xml-writer && \ 18 | wget -P /opt/ https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip && \ 19 | unzip /opt/gradle-${GRADLE_VERSION}-all.zip -d /opt/ && \ 20 | mv /opt/gradle-${GRADLE_VERSION} ${GRADLE_HOME} && \ 21 | cd /tmp && \ 22 | phonegap create fakeapp --no-insight && \ 23 | cd /tmp/fakeapp && \ 24 | sed -i 's|name="android-minSdkVersion" value="14"|name="android-minSdkVersion" value="22"|g' /tmp/fakeapp/config.xml && \ 25 | sed -i '//a \ \ \ \ \ \ \ \ ' /tmp/fakeapp/config.xml && \ 26 | phonegap cordova platform add android@${ANDROID_PLATFORM_VERSION} --force && \ 27 | phonegap plugin rm cordova-plugin-camera && \ 28 | phonegap plugin add cordova-plugin-camera@6.0.0 --save && \ 29 | phonegap plugin add cordova-plugin-inappbrowser@5.0.0 --save && \ 30 | phonegap build android --verbose && \ 31 | cd && \ 32 | rm -rf /tmp/fakeapp 33 | ENV CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL file:///opt/gradle-${GRADLE_VERSION}-all.zip 34 | ADD init.gradle /root/.gradle 35 | 36 | VOLUME ["/data"] 37 | WORKDIR /data 38 | 39 | EXPOSE 3000 40 | -------------------------------------------------------------------------------- /phonegap/7.1.1_android-32/README.md: -------------------------------------------------------------------------------- 1 | ## PhoneGap Dockerfile 2 | 3 | This repository contains **Dockerfile** of [PhoneGap](http://phonegap.com/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/phonegap/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/phonegap` 11 | 12 | ### Usage 13 | 14 | #### Run `phonegap create` 15 | 16 | docker run -v :/data webratio/phonegap phonegap create 17 | 18 | #### Run `phonegap serve` 19 | 20 | docker run -d -p :3000 -v :/data webratio/phonegap phonegap serve -p 3000 21 | 22 | #### Run `phonegap build android` 23 | 24 | docker run -v :/data webratio/phonegap phonegap build android 25 | -------------------------------------------------------------------------------- /phonegap/7.1.1_android-32/init.gradle: -------------------------------------------------------------------------------- 1 | // Defines the correct order of the repositories 2 | 3 | buildscript { 4 | repositories { 5 | maven { 6 | url "https://maven.google.com" 7 | } 8 | jcenter() 9 | } 10 | } 11 | 12 | allprojects { 13 | repositories { 14 | maven { 15 | url "https://maven.google.com" 16 | } 17 | jcenter() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /phonegap/7.1.1_android-33/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk:16_sdk-33 2 | 3 | # Installs PhoneGap 4 | # Forces a create and build in order to preload libraries 5 | ENV PHONEGAP_VERSION 7.1.1 6 | ENV ANDROID_PLATFORM_VERSION 12.0.0 7 | ENV GRADLE_VERSION 7.6 8 | ENV GRADLE_HOME /opt/gradle 9 | ENV ANDROID_SDK_ROOT $ANDROID_HOME 10 | ENV PATH ${PATH}:${GRADLE_HOME}/bin 11 | RUN apt-get update -y && \ 12 | apt-get install -y git-core && \ 13 | rm -rf /var/lib/apt/lists/* && \ 14 | apt-get autoremove -y && \ 15 | apt-get clean && \ 16 | npm install -g npm@6 && \ 17 | npm install -g phonegap@${PHONEGAP_VERSION} && \ 18 | npm install -g xmldom xpath fs-extra lodash iconv-lite xml2js xcode xml-writer && \ 19 | wget -P /opt/ https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip && \ 20 | unzip /opt/gradle-${GRADLE_VERSION}-all.zip -d /opt/ && \ 21 | mv /opt/gradle-${GRADLE_VERSION} ${GRADLE_HOME} && \ 22 | cd /tmp && \ 23 | phonegap create fakeapp --no-insight && \ 24 | cd /tmp/fakeapp && \ 25 | sed -i 's|name="android-minSdkVersion" value="14"|name="android-minSdkVersion" value="24"|g' /tmp/fakeapp/config.xml && \ 26 | sed -i '//a \ \ \ \ \ \ \ \ ' /tmp/fakeapp/config.xml && \ 27 | phonegap cordova platform add android@${ANDROID_PLATFORM_VERSION} --force && \ 28 | phonegap plugin rm cordova-plugin-camera && \ 29 | phonegap plugin add cordova-plugin-camera@6.0.0 --save && \ 30 | phonegap plugin add cordova-plugin-inappbrowser@5.0.0 --save && \ 31 | phonegap build android --verbose && \ 32 | cd && \ 33 | rm -rf /tmp/fakeapp 34 | ENV CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL file:///opt/gradle-${GRADLE_VERSION}-all.zip 35 | ADD init.gradle /root/.gradle 36 | 37 | VOLUME ["/data"] 38 | WORKDIR /data 39 | 40 | EXPOSE 3000 41 | -------------------------------------------------------------------------------- /phonegap/7.1.1_android-33/README.md: -------------------------------------------------------------------------------- 1 | ## PhoneGap Dockerfile 2 | 3 | This repository contains **Dockerfile** of [PhoneGap](http://phonegap.com/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/phonegap/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/phonegap` 11 | 12 | ### Usage 13 | 14 | #### Run `phonegap create` 15 | 16 | docker run -v :/data webratio/phonegap phonegap create 17 | 18 | #### Run `phonegap serve` 19 | 20 | docker run -d -p :3000 -v :/data webratio/phonegap phonegap serve -p 3000 21 | 22 | #### Run `phonegap build android` 23 | 24 | docker run -v :/data webratio/phonegap phonegap build android 25 | -------------------------------------------------------------------------------- /phonegap/7.1.1_android-33/init.gradle: -------------------------------------------------------------------------------- 1 | // Defines the correct order of the repositories 2 | 3 | buildscript { 4 | repositories { 5 | maven { 6 | url "https://maven.google.com" 7 | } 8 | jcenter() 9 | } 10 | } 11 | 12 | allprojects { 13 | repositories { 14 | maven { 15 | url "https://maven.google.com" 16 | } 17 | jcenter() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /phonegap/7.1.1_android-34/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk:16_sdk-34 2 | 3 | # Installs PhoneGap 4 | # Forces a create and build in order to preload libraries 5 | ENV PHONEGAP_VERSION 7.1.1 6 | ENV ANDROID_PLATFORM_VERSION 13.0.0 7 | ENV GRADLE_VERSION 8.7 8 | ENV GRADLE_HOME /opt/gradle 9 | ENV ANDROID_SDK_ROOT $ANDROID_HOME 10 | ENV PATH ${PATH}:${GRADLE_HOME}/bin 11 | RUN apt-get update -y && \ 12 | apt-get install -y git-core && \ 13 | rm -rf /var/lib/apt/lists/* && \ 14 | apt-get autoremove -y && \ 15 | apt-get clean && \ 16 | npm install -g npm@6 && \ 17 | npm install -g phonegap@${PHONEGAP_VERSION} && \ 18 | npm install -g xmldom xpath fs-extra lodash iconv-lite xml2js xcode xml-writer && \ 19 | wget -P /opt/ https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip && \ 20 | unzip /opt/gradle-${GRADLE_VERSION}-all.zip -d /opt/ && \ 21 | mv /opt/gradle-${GRADLE_VERSION} ${GRADLE_HOME} && \ 22 | cd /tmp && \ 23 | phonegap create fakeapp --no-insight && \ 24 | cd /tmp/fakeapp && \ 25 | sed -i 's|name="android-minSdkVersion" value="14"|name="android-minSdkVersion" value="24"|g' /tmp/fakeapp/config.xml && \ 26 | sed -i '//a \ \ \ \ \ \ \ \ ' /tmp/fakeapp/config.xml && \ 27 | phonegap cordova platform add android@${ANDROID_PLATFORM_VERSION} --force && \ 28 | phonegap plugin rm cordova-plugin-camera && \ 29 | phonegap plugin add cordova-plugin-camera@6.0.0 --save && \ 30 | phonegap plugin add cordova-plugin-inappbrowser@5.0.0 --save && \ 31 | phonegap build android --verbose && \ 32 | cd && \ 33 | rm -rf /tmp/fakeapp 34 | ENV CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL file:///opt/gradle-${GRADLE_VERSION}-all.zip 35 | ADD init.gradle /root/.gradle 36 | 37 | VOLUME ["/data"] 38 | WORKDIR /data 39 | 40 | EXPOSE 3000 41 | -------------------------------------------------------------------------------- /phonegap/7.1.1_android-34/README.md: -------------------------------------------------------------------------------- 1 | ## PhoneGap Dockerfile 2 | 3 | This repository contains **Dockerfile** of [PhoneGap](http://phonegap.com/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/phonegap/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/phonegap` 11 | 12 | ### Usage 13 | 14 | #### Run `phonegap create` 15 | 16 | docker run -v :/data webratio/phonegap phonegap create 17 | 18 | #### Run `phonegap serve` 19 | 20 | docker run -d -p :3000 -v :/data webratio/phonegap phonegap serve -p 3000 21 | 22 | #### Run `phonegap build android` 23 | 24 | docker run -v :/data webratio/phonegap phonegap build android 25 | -------------------------------------------------------------------------------- /phonegap/7.1.1_android-34/init.gradle: -------------------------------------------------------------------------------- 1 | // Defines the correct order of the repositories 2 | 3 | buildscript { 4 | repositories { 5 | maven { 6 | url "https://maven.google.com" 7 | } 8 | jcenter() 9 | } 10 | } 11 | 12 | allprojects { 13 | repositories { 14 | maven { 15 | url "https://maven.google.com" 16 | } 17 | jcenter() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /phonegap/7.1.1_android-8.0.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk:10.14.0 2 | 3 | # Installs PhoneGap 4 | # Forces a create and build in order to preload libraries 5 | ENV PHONEGAP_VERSION 7.1.1 6 | ENV ANDROID_PLATFORM_VERSION 8.0.0 7 | ENV GRADLE_HOME /opt/gradle 8 | ENV PATH ${PATH}:${GRADLE_HOME}/bin 9 | RUN apt-get update -y && \ 10 | apt-get install -y git-core && \ 11 | rm -rf /var/lib/apt/lists/* && \ 12 | apt-get autoremove -y && \ 13 | apt-get clean && \ 14 | npm install -g phonegap@${PHONEGAP_VERSION} && \ 15 | npm install -g xmldom && \ 16 | npm install -g xpath && \ 17 | npm install -g fs-extra && \ 18 | npm install -g lodash && \ 19 | npm install -g iconv-lite && \ 20 | npm install -g xml2js && \ 21 | npm install -g xcode && \ 22 | npm install -g xml-writer && \ 23 | wget -P /opt/ https://services.gradle.org/distributions/gradle-4.10.3-all.zip && \ 24 | unzip /opt/gradle-4.10.3-all.zip -d /opt/ && \ 25 | mv /opt/gradle-4.10.3 ${GRADLE_HOME} && \ 26 | cd /tmp && \ 27 | phonegap create fakeapp --no-insight && \ 28 | cd /tmp/fakeapp && \ 29 | sed -i 's|name="android-minSdkVersion" value="14"|name="android-minSdkVersion" value="19"|g' /tmp/fakeapp/config.xml && \ 30 | phonegap cordova platform add android@${ANDROID_PLATFORM_VERSION} --force && \ 31 | phonegap build android --verbose && \ 32 | cd && \ 33 | rm -rf /tmp/fakeapp 34 | ENV CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL file:///opt/gradle-4.10.3-all.zip 35 | ADD init.gradle /root/.gradle 36 | 37 | VOLUME ["/data"] 38 | WORKDIR /data 39 | 40 | EXPOSE 3000 -------------------------------------------------------------------------------- /phonegap/7.1.1_android-8.0.0/README.md: -------------------------------------------------------------------------------- 1 | ## PhoneGap Dockerfile 2 | 3 | This repository contains **Dockerfile** of [PhoneGap](http://phonegap.com/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/phonegap/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/phonegap` 11 | * `docker pull webratio/phonegap:3.5.0` 12 | * `docker pull webratio/phonegap:3.5.0-0.21.18` 13 | * `docker pull webratio/phonegap:3.6.0` 14 | * `docker pull webratio/phonegap:3.6.0-0.21.19` 15 | * `docker pull webratio/phonegap:3.6.3` 16 | * `docker pull webratio/phonegap:3.6.3-0.22.7` 17 | * `docker pull webratio/phonegap:4.0.0` 18 | * `docker pull webratio/phonegap:4.0.0-0.22.7` 19 | * `docker pull webratio/phonegap:4.1.2` 20 | * `docker pull webratio/phonegap:4.1.2-0.22.12` 21 | * `docker pull webratio/phonegap:4.2.0` 22 | * `docker pull webratio/phonegap:4.2.0-0.24.2` 23 | * `docker pull webratio/phonegap:6.0.3` 24 | * `docker pull webratio/phonegap:6.1.0` 25 | * `docker pull webratio/phonegap:6.2.0` 26 | * `docker pull webratio/phonegap:6.2.2` 27 | * `docker pull webratio/phonegap:7.1.1` 28 | * `docker pull webratio/phonegap:7.1.1_android-8.0.0` 29 | 30 | ### Usage 31 | 32 | #### Run `phonegap create` 33 | 34 | docker run -v :/data webratio/phonegap phonegap create 35 | 36 | #### Run `phonegap serve` 37 | 38 | docker run -d -p :3000 -v :/data webratio/phonegap phonegap serve -p 3000 39 | 40 | #### Run `phonegap build android` 41 | 42 | docker run -v :/data webratio/phonegap phonegap build android 43 | -------------------------------------------------------------------------------- /phonegap/7.1.1_android-8.0.0/init.gradle: -------------------------------------------------------------------------------- 1 | // Defines the correct order of the repositories 2 | 3 | buildscript { 4 | repositories { 5 | maven { 6 | url "https://maven.google.com" 7 | } 8 | jcenter() 9 | } 10 | } 11 | 12 | allprojects { 13 | repositories { 14 | maven { 15 | url "https://maven.google.com" 16 | } 17 | jcenter() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /phonegap/7.1.1_android-8.1.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk:12.13.1 2 | 3 | # Installs PhoneGap 4 | # Forces a create and build in order to preload libraries 5 | ENV PHONEGAP_VERSION 7.1.1 6 | ENV ANDROID_PLATFORM_VERSION 8.1.0 7 | ENV GRADLE_HOME /opt/gradle 8 | ENV ANDROID_SDK_ROOT /opt/sdk 9 | ENV PATH ${PATH}:${GRADLE_HOME}/bin 10 | RUN apt-get update -y && \ 11 | apt-get install -y git-core && \ 12 | rm -rf /var/lib/apt/lists/* && \ 13 | apt-get autoremove -y && \ 14 | apt-get clean && \ 15 | npm install -g phonegap@${PHONEGAP_VERSION} && \ 16 | npm install -g xmldom && \ 17 | npm install -g xpath && \ 18 | npm install -g fs-extra && \ 19 | npm install -g lodash && \ 20 | npm install -g iconv-lite && \ 21 | npm install -g xml2js && \ 22 | npm install -g xcode && \ 23 | npm install -g xml-writer && \ 24 | wget -P /opt/ https://services.gradle.org/distributions/gradle-4.10.3-all.zip && \ 25 | unzip /opt/gradle-4.10.3-all.zip -d /opt/ && \ 26 | mv /opt/gradle-4.10.3 ${GRADLE_HOME} && \ 27 | cd /tmp && \ 28 | phonegap create fakeapp --no-insight && \ 29 | cd /tmp/fakeapp && \ 30 | sed -i 's|name="android-minSdkVersion" value="14"|name="android-minSdkVersion" value="19"|g' /tmp/fakeapp/config.xml && \ 31 | sed -i '//a \ \ \ \ \ \ \ \ ' /tmp/fakeapp/config.xml && \ 32 | phonegap cordova platform add android@${ANDROID_PLATFORM_VERSION} --force && \ 33 | phonegap build android --verbose && \ 34 | cd && \ 35 | rm -rf /tmp/fakeapp 36 | ENV CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL file:///opt/gradle-4.10.3-all.zip 37 | ADD init.gradle /root/.gradle 38 | 39 | VOLUME ["/data"] 40 | WORKDIR /data 41 | 42 | EXPOSE 3000 -------------------------------------------------------------------------------- /phonegap/7.1.1_android-8.1.0/README.md: -------------------------------------------------------------------------------- 1 | ## PhoneGap Dockerfile 2 | 3 | This repository contains **Dockerfile** of [PhoneGap](http://phonegap.com/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/phonegap/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/phonegap` 11 | * `docker pull webratio/phonegap:3.5.0` 12 | * `docker pull webratio/phonegap:3.5.0-0.21.18` 13 | * `docker pull webratio/phonegap:3.6.0` 14 | * `docker pull webratio/phonegap:3.6.0-0.21.19` 15 | * `docker pull webratio/phonegap:3.6.3` 16 | * `docker pull webratio/phonegap:3.6.3-0.22.7` 17 | * `docker pull webratio/phonegap:4.0.0` 18 | * `docker pull webratio/phonegap:4.0.0-0.22.7` 19 | * `docker pull webratio/phonegap:4.1.2` 20 | * `docker pull webratio/phonegap:4.1.2-0.22.12` 21 | * `docker pull webratio/phonegap:4.2.0` 22 | * `docker pull webratio/phonegap:4.2.0-0.24.2` 23 | * `docker pull webratio/phonegap:6.0.3` 24 | * `docker pull webratio/phonegap:6.1.0` 25 | * `docker pull webratio/phonegap:6.2.0` 26 | * `docker pull webratio/phonegap:6.2.2` 27 | * `docker pull webratio/phonegap:7.1.1` 28 | * `docker pull webratio/phonegap:7.1.1_android-8.0.0` 29 | 30 | ### Usage 31 | 32 | #### Run `phonegap create` 33 | 34 | docker run -v :/data webratio/phonegap phonegap create 35 | 36 | #### Run `phonegap serve` 37 | 38 | docker run -d -p :3000 -v :/data webratio/phonegap phonegap serve -p 3000 39 | 40 | #### Run `phonegap build android` 41 | 42 | docker run -v :/data webratio/phonegap phonegap build android 43 | -------------------------------------------------------------------------------- /phonegap/7.1.1_android-8.1.0/init.gradle: -------------------------------------------------------------------------------- 1 | // Defines the correct order of the repositories 2 | 3 | buildscript { 4 | repositories { 5 | maven { 6 | url "https://maven.google.com" 7 | } 8 | jcenter() 9 | } 10 | } 11 | 12 | allprojects { 13 | repositories { 14 | maven { 15 | url "https://maven.google.com" 16 | } 17 | jcenter() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /phonegap/7.1.1_android-9.0.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk:12.13.1 2 | 3 | # Installs PhoneGap 4 | # Forces a create and build in order to preload libraries 5 | ENV PHONEGAP_VERSION 7.1.1 6 | ENV ANDROID_PLATFORM_VERSION 9.0.0 7 | ENV GRADLE_VERSION 6.5 8 | ENV GRADLE_HOME /opt/gradle 9 | ENV ANDROID_SDK_ROOT /opt/sdk 10 | ENV PATH ${PATH}:${GRADLE_HOME}/bin 11 | RUN apt-get update -y && \ 12 | apt-get install -y git-core && \ 13 | rm -rf /var/lib/apt/lists/* && \ 14 | apt-get autoremove -y && \ 15 | apt-get clean && \ 16 | npm install -g phonegap@${PHONEGAP_VERSION} && \ 17 | npm install -g xmldom && \ 18 | npm install -g xpath && \ 19 | npm install -g fs-extra && \ 20 | npm install -g lodash && \ 21 | npm install -g iconv-lite && \ 22 | npm install -g xml2js && \ 23 | npm install -g xcode && \ 24 | npm install -g xml-writer && \ 25 | wget -P /opt/ https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip && \ 26 | unzip /opt/gradle-${GRADLE_VERSION}-all.zip -d /opt/ && \ 27 | mv /opt/gradle-${GRADLE_VERSION} ${GRADLE_HOME} && \ 28 | cd /tmp && \ 29 | phonegap create fakeapp --no-insight && \ 30 | cd /tmp/fakeapp && \ 31 | sed -i 's|name="android-minSdkVersion" value="14"|name="android-minSdkVersion" value="22"|g' /tmp/fakeapp/config.xml && \ 32 | phonegap cordova platform add android@${ANDROID_PLATFORM_VERSION} --force && \ 33 | phonegap build android --verbose && \ 34 | cd && \ 35 | rm -rf /tmp/fakeapp 36 | ENV CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL file:///opt/gradle-6.5-all.zip 37 | ADD init.gradle /root/.gradle 38 | 39 | VOLUME ["/data"] 40 | WORKDIR /data 41 | 42 | EXPOSE 3000 43 | -------------------------------------------------------------------------------- /phonegap/7.1.1_android-9.0.0/README.md: -------------------------------------------------------------------------------- 1 | ## PhoneGap Dockerfile 2 | 3 | This repository contains **Dockerfile** of [PhoneGap](http://phonegap.com/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/phonegap/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/phonegap` 11 | * `docker pull webratio/phonegap:3.5.0` 12 | * `docker pull webratio/phonegap:3.5.0-0.21.18` 13 | * `docker pull webratio/phonegap:3.6.0` 14 | * `docker pull webratio/phonegap:3.6.0-0.21.19` 15 | * `docker pull webratio/phonegap:3.6.3` 16 | * `docker pull webratio/phonegap:3.6.3-0.22.7` 17 | * `docker pull webratio/phonegap:4.0.0` 18 | * `docker pull webratio/phonegap:4.0.0-0.22.7` 19 | * `docker pull webratio/phonegap:4.1.2` 20 | * `docker pull webratio/phonegap:4.1.2-0.22.12` 21 | * `docker pull webratio/phonegap:4.2.0` 22 | * `docker pull webratio/phonegap:4.2.0-0.24.2` 23 | * `docker pull webratio/phonegap:6.0.3` 24 | * `docker pull webratio/phonegap:6.1.0` 25 | * `docker pull webratio/phonegap:6.2.0` 26 | * `docker pull webratio/phonegap:6.2.2` 27 | * `docker pull webratio/phonegap:7.1.1` 28 | * `docker pull webratio/phonegap:7.1.1_android-8.0.0` 29 | 30 | ### Usage 31 | 32 | #### Run `phonegap create` 33 | 34 | docker run -v :/data webratio/phonegap phonegap create 35 | 36 | #### Run `phonegap serve` 37 | 38 | docker run -d -p :3000 -v :/data webratio/phonegap phonegap serve -p 3000 39 | 40 | #### Run `phonegap build android` 41 | 42 | docker run -v :/data webratio/phonegap phonegap build android 43 | -------------------------------------------------------------------------------- /phonegap/7.1.1_android-9.0.0/init.gradle: -------------------------------------------------------------------------------- 1 | // Defines the correct order of the repositories 2 | 3 | buildscript { 4 | repositories { 5 | maven { 6 | url "https://maven.google.com" 7 | } 8 | jcenter() 9 | } 10 | } 11 | 12 | allprojects { 13 | repositories { 14 | maven { 15 | url "https://maven.google.com" 16 | } 17 | jcenter() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /phonegap/9.0.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk:12.13.1 2 | 3 | # Installs PhoneGap 4 | # Forces a create and build in order to preload libraries 5 | ENV PHONEGAP_VERSION 9.0.0 6 | ENV ANDROID_PLATFORM_VERSION 8.1.0 7 | ENV GRADLE_HOME /opt/gradle 8 | ENV ANDROID_SDK_ROOT /opt/sdk 9 | ENV PATH ${PATH}:${GRADLE_HOME}/bin 10 | RUN apt-get update -y && \ 11 | apt-get install -y git-core && \ 12 | rm -rf /var/lib/apt/lists/* && \ 13 | apt-get autoremove -y && \ 14 | apt-get clean && \ 15 | npm install -g phonegap@${PHONEGAP_VERSION} && \ 16 | npm install -g xmldom && \ 17 | npm install -g xpath && \ 18 | npm install -g fs-extra && \ 19 | npm install -g lodash && \ 20 | npm install -g iconv-lite && \ 21 | npm install -g xml2js && \ 22 | npm install -g xcode && \ 23 | npm install -g xml-writer && \ 24 | wget -P /opt/ https://services.gradle.org/distributions/gradle-4.10.3-all.zip && \ 25 | unzip /opt/gradle-4.10.3-all.zip -d /opt/ && \ 26 | mv /opt/gradle-4.10.3 ${GRADLE_HOME} && \ 27 | cd /tmp && \ 28 | phonegap cordova create fakeapp --no-insight && \ 29 | cd /tmp/fakeapp && \ 30 | phonegap cordova platform add android@${ANDROID_PLATFORM_VERSION} && \ 31 | phonegap cordova plugin add cordova-plugin-battery-status && \ 32 | phonegap cordova plugin add cordova-plugin-camera && \ 33 | phonegap cordova plugin add cordova-plugin-media-capture && \ 34 | phonegap cordova plugin add cordova-plugin-device && \ 35 | phonegap cordova plugin add cordova-plugin-dialogs && \ 36 | phonegap cordova plugin add cordova-plugin-file && \ 37 | phonegap cordova plugin add cordova-plugin-geolocation && \ 38 | phonegap cordova plugin add cordova-plugin-globalization && \ 39 | phonegap cordova plugin add cordova-plugin-inappbrowser && \ 40 | phonegap cordova plugin add cordova-plugin-network-information && \ 41 | phonegap cordova plugin add cordova-plugin-vibration && \ 42 | phonegap build android --verbose && \ 43 | cd && \ 44 | rm -rf /tmp/fakeapp 45 | ENV CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL file:///opt/gradle-4.10.3-all.zip 46 | ADD init.gradle /root/.gradle 47 | 48 | VOLUME ["/data"] 49 | WORKDIR /data 50 | 51 | EXPOSE 3000 -------------------------------------------------------------------------------- /phonegap/9.0.0/README.md: -------------------------------------------------------------------------------- 1 | ## PhoneGap Dockerfile 2 | 3 | This repository contains **Dockerfile** of [PhoneGap](http://phonegap.com/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/phonegap/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/phonegap` 11 | * `docker pull webratio/phonegap:3.5.0` 12 | * `docker pull webratio/phonegap:3.5.0-0.21.18` 13 | * `docker pull webratio/phonegap:3.6.0` 14 | * `docker pull webratio/phonegap:3.6.0-0.21.19` 15 | * `docker pull webratio/phonegap:3.6.3` 16 | * `docker pull webratio/phonegap:3.6.3-0.22.7` 17 | * `docker pull webratio/phonegap:4.0.0` 18 | * `docker pull webratio/phonegap:4.0.0-0.22.7` 19 | * `docker pull webratio/phonegap:4.1.2` 20 | * `docker pull webratio/phonegap:4.1.2-0.22.12` 21 | * `docker pull webratio/phonegap:4.2.0` 22 | * `docker pull webratio/phonegap:4.2.0-0.24.2` 23 | * `docker pull webratio/phonegap:6.0.3` 24 | * `docker pull webratio/phonegap:6.1.0` 25 | * `docker pull webratio/phonegap:6.2.0` 26 | * `docker pull webratio/phonegap:6.2.2` 27 | * `docker pull webratio/phonegap:7.1.1` 28 | * `docker pull webratio/phonegap:7.1.1_android-8.0.0` 29 | * `docker pull webratio/phonegap:9.0.0_android-8.1.1` 30 | 31 | ### Usage 32 | 33 | #### Run `phonegap create` 34 | 35 | docker run -v :/data webratio/phonegap phonegap create 36 | 37 | #### Run `phonegap serve` 38 | 39 | docker run -d -p :3000 -v :/data webratio/phonegap phonegap serve -p 3000 40 | 41 | #### Run `phonegap build android` 42 | 43 | docker run -v :/data webratio/phonegap phonegap build android 44 | -------------------------------------------------------------------------------- /phonegap/9.0.0/init.gradle: -------------------------------------------------------------------------------- 1 | // Defines the correct order of the repositories 2 | 3 | buildscript { 4 | repositories { 5 | maven { 6 | url "https://maven.google.com" 7 | } 8 | jcenter() 9 | } 10 | } 11 | 12 | allprojects { 13 | repositories { 14 | maven { 15 | url "https://maven.google.com" 16 | } 17 | jcenter() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /phonegap/9.0.0_android-30/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk:14_sdk-30 2 | 3 | # Installs PhoneGap 4 | # Forces a create and build in order to preload libraries 5 | ENV PHONEGAP_VERSION 9.0.0 6 | ENV ANDROID_PLATFORM_VERSION 8.1.0 7 | ENV GRADLE_VERSION 4.10.3 8 | ENV GRADLE_HOME /opt/gradle 9 | ENV ANDROID_SDK_ROOT /opt/sdk 10 | ENV PATH ${PATH}:${GRADLE_HOME}/bin 11 | RUN apt-get update -y && \ 12 | apt-get install -y git-core && \ 13 | rm -rf /var/lib/apt/lists/* && \ 14 | apt-get autoremove -y && \ 15 | apt-get clean && \ 16 | npm install -g phonegap@${PHONEGAP_VERSION} && \ 17 | npm install -g xmldom && \ 18 | npm install -g xpath && \ 19 | npm install -g fs-extra && \ 20 | npm install -g lodash && \ 21 | npm install -g iconv-lite && \ 22 | npm install -g xml2js && \ 23 | npm install -g xcode && \ 24 | npm install -g xml-writer && \ 25 | wget -P /opt/ https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip && \ 26 | unzip /opt/gradle-${GRADLE_VERSION}-all.zip -d /opt/ && \ 27 | mv /opt/gradle-${GRADLE_VERSION} ${GRADLE_HOME} && \ 28 | cd /tmp && \ 29 | phonegap cordova create fakeapp --no-insight && \ 30 | cd /tmp/fakeapp && \ 31 | phonegap cordova platform add android@${ANDROID_PLATFORM_VERSION} && \ 32 | phonegap cordova plugin add cordova-plugin-battery-status && \ 33 | phonegap cordova plugin add cordova-plugin-camera && \ 34 | phonegap cordova plugin add cordova-plugin-media-capture && \ 35 | phonegap cordova plugin add cordova-plugin-device && \ 36 | phonegap cordova plugin add cordova-plugin-dialogs && \ 37 | phonegap cordova plugin add cordova-plugin-file && \ 38 | phonegap cordova plugin add cordova-plugin-geolocation && \ 39 | phonegap cordova plugin add cordova-plugin-globalization && \ 40 | phonegap cordova plugin add cordova-plugin-inappbrowser && \ 41 | phonegap cordova plugin add cordova-plugin-network-information && \ 42 | phonegap cordova plugin add cordova-plugin-vibration && \ 43 | phonegap build android --verbose && \ 44 | cd && \ 45 | rm -rf /tmp/fakeapp 46 | ENV CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL file:///opt/gradle-${GRADLE_VERSION}-all.zip 47 | ADD init.gradle /root/.gradle 48 | 49 | VOLUME ["/data"] 50 | WORKDIR /data 51 | 52 | EXPOSE 3000 53 | -------------------------------------------------------------------------------- /phonegap/9.0.0_android-30/README.md: -------------------------------------------------------------------------------- 1 | ## PhoneGap Dockerfile 2 | 3 | This repository contains **Dockerfile** of [PhoneGap](http://phonegap.com/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/phonegap/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/phonegap` 11 | 12 | ### Usage 13 | 14 | #### Run `phonegap create` 15 | 16 | docker run -v :/data webratio/phonegap phonegap create 17 | 18 | #### Run `phonegap serve` 19 | 20 | docker run -d -p :3000 -v :/data webratio/phonegap phonegap serve -p 3000 21 | 22 | #### Run `phonegap build android` 23 | 24 | docker run -v :/data webratio/phonegap phonegap build android 25 | -------------------------------------------------------------------------------- /phonegap/9.0.0_android-30/init.gradle: -------------------------------------------------------------------------------- 1 | // Defines the correct order of the repositories 2 | 3 | buildscript { 4 | repositories { 5 | maven { 6 | url "https://maven.google.com" 7 | } 8 | jcenter() 9 | } 10 | } 11 | 12 | allprojects { 13 | repositories { 14 | maven { 15 | url "https://maven.google.com" 16 | } 17 | jcenter() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /phonegap/9.0.0_android-32/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk:14_sdk-32 2 | 3 | # Installs PhoneGap 4 | # Forces a create and build in order to preload libraries 5 | ENV PHONEGAP_VERSION 9.0.0 6 | ENV ANDROID_PLATFORM_VERSION 11.0.0 7 | ENV GRADLE_VERSION 7.4.2 8 | ENV GRADLE_HOME /opt/gradle 9 | ENV ANDROID_SDK_ROOT $ANDROID_HOME 10 | ENV PATH ${PATH}:${GRADLE_HOME}/bin 11 | RUN apt-get update -y && \ 12 | apt-get install -y git-core && \ 13 | rm -rf /var/lib/apt/lists/* && \ 14 | apt-get autoremove -y && \ 15 | apt-get clean && \ 16 | npm install -g phonegap@${PHONEGAP_VERSION} && \ 17 | npm install -g xmldom xpath fs-extra lodash iconv-lite xml2js xcode xml-writer && \ 18 | wget -P /opt/ https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip && \ 19 | unzip /opt/gradle-${GRADLE_VERSION}-all.zip -d /opt/ && \ 20 | mv /opt/gradle-${GRADLE_VERSION} ${GRADLE_HOME} && \ 21 | cd /tmp && \ 22 | phonegap cordova create fakeapp --no-insight && \ 23 | cd /tmp/fakeapp && \ 24 | phonegap cordova platform add android@${ANDROID_PLATFORM_VERSION} && \ 25 | phonegap build android --verbose && \ 26 | cd && \ 27 | rm -rf /tmp/fakeapp 28 | ENV CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL file:///opt/gradle-${GRADLE_VERSION}-all.zip 29 | ADD init.gradle /root/.gradle 30 | 31 | VOLUME ["/data"] 32 | WORKDIR /data 33 | 34 | EXPOSE 3000 35 | -------------------------------------------------------------------------------- /phonegap/9.0.0_android-32/README.md: -------------------------------------------------------------------------------- 1 | ## PhoneGap Dockerfile 2 | 3 | This repository contains **Dockerfile** of [PhoneGap](http://phonegap.com/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/phonegap/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/phonegap` 11 | 12 | ### Usage 13 | 14 | #### Run `phonegap create` 15 | 16 | docker run -v :/data webratio/phonegap phonegap create 17 | 18 | #### Run `phonegap serve` 19 | 20 | docker run -d -p :3000 -v :/data webratio/phonegap phonegap serve -p 3000 21 | 22 | #### Run `phonegap build android` 23 | 24 | docker run -v :/data webratio/phonegap phonegap build android 25 | -------------------------------------------------------------------------------- /phonegap/9.0.0_android-32/init.gradle: -------------------------------------------------------------------------------- 1 | // Defines the correct order of the repositories 2 | 3 | buildscript { 4 | repositories { 5 | maven { 6 | url "https://maven.google.com" 7 | } 8 | jcenter() 9 | } 10 | } 11 | 12 | allprojects { 13 | repositories { 14 | maven { 15 | url "https://maven.google.com" 16 | } 17 | jcenter() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /phonegap/9.0.0_android-33/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk:16_sdk-33 2 | 3 | # Installs PhoneGap 4 | # Forces a create and build in order to preload libraries 5 | ENV PHONEGAP_VERSION 9.0.0 6 | ENV ANDROID_PLATFORM_VERSION 12.0.0 7 | ENV GRADLE_VERSION 7.6 8 | ENV GRADLE_HOME /opt/gradle 9 | ENV ANDROID_SDK_ROOT $ANDROID_HOME 10 | ENV PATH ${PATH}:${GRADLE_HOME}/bin 11 | RUN apt-get update -y && \ 12 | apt-get install -y git-core && \ 13 | rm -rf /var/lib/apt/lists/* && \ 14 | apt-get autoremove -y && \ 15 | apt-get clean && \ 16 | npm install -g npm@6 && \ 17 | npm install -g phonegap@${PHONEGAP_VERSION} && \ 18 | npm install -g xmldom xpath fs-extra lodash iconv-lite xml2js xcode xml-writer && \ 19 | wget -P /opt/ https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip && \ 20 | unzip /opt/gradle-${GRADLE_VERSION}-all.zip -d /opt/ && \ 21 | mv /opt/gradle-${GRADLE_VERSION} ${GRADLE_HOME} && \ 22 | cd /tmp && \ 23 | phonegap cordova create fakeapp --no-insight && \ 24 | cd /tmp/fakeapp && \ 25 | phonegap cordova platform add android@${ANDROID_PLATFORM_VERSION} && \ 26 | phonegap build android --verbose && \ 27 | cd && \ 28 | rm -rf /tmp/fakeapp 29 | ENV CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL file:///opt/gradle-${GRADLE_VERSION}-all.zip 30 | ADD init.gradle /root/.gradle 31 | 32 | VOLUME ["/data"] 33 | WORKDIR /data 34 | 35 | EXPOSE 3000 36 | -------------------------------------------------------------------------------- /phonegap/9.0.0_android-33/README.md: -------------------------------------------------------------------------------- 1 | ## PhoneGap Dockerfile 2 | 3 | This repository contains **Dockerfile** of [PhoneGap](http://phonegap.com/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/phonegap/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/phonegap` 11 | 12 | ### Usage 13 | 14 | #### Run `phonegap create` 15 | 16 | docker run -v :/data webratio/phonegap phonegap create 17 | 18 | #### Run `phonegap serve` 19 | 20 | docker run -d -p :3000 -v :/data webratio/phonegap phonegap serve -p 3000 21 | 22 | #### Run `phonegap build android` 23 | 24 | docker run -v :/data webratio/phonegap phonegap build android 25 | -------------------------------------------------------------------------------- /phonegap/9.0.0_android-33/init.gradle: -------------------------------------------------------------------------------- 1 | // Defines the correct order of the repositories 2 | 3 | buildscript { 4 | repositories { 5 | maven { 6 | url "https://maven.google.com" 7 | } 8 | jcenter() 9 | } 10 | } 11 | 12 | allprojects { 13 | repositories { 14 | maven { 15 | url "https://maven.google.com" 16 | } 17 | jcenter() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /phonegap/9.0.0_android-34/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM webratio/nodejs-with-android-sdk:16_sdk-34 2 | 3 | # Installs PhoneGap 4 | # Forces a create and build in order to preload libraries 5 | ENV PHONEGAP_VERSION 9.0.0 6 | ENV ANDROID_PLATFORM_VERSION 13.0.0 7 | ENV GRADLE_VERSION 8.7 8 | ENV GRADLE_HOME /opt/gradle 9 | ENV ANDROID_SDK_ROOT $ANDROID_HOME 10 | ENV PATH ${PATH}:${GRADLE_HOME}/bin 11 | RUN apt-get update -y && \ 12 | apt-get install -y git-core && \ 13 | rm -rf /var/lib/apt/lists/* && \ 14 | apt-get autoremove -y && \ 15 | apt-get clean && \ 16 | npm install -g npm@6 && \ 17 | npm install -g phonegap@${PHONEGAP_VERSION} && \ 18 | npm install -g xmldom xpath fs-extra lodash iconv-lite xml2js xcode xml-writer && \ 19 | wget -P /opt/ https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip && \ 20 | unzip /opt/gradle-${GRADLE_VERSION}-all.zip -d /opt/ && \ 21 | mv /opt/gradle-${GRADLE_VERSION} ${GRADLE_HOME} && \ 22 | cd /tmp && \ 23 | phonegap cordova create fakeapp --no-insight && \ 24 | cd /tmp/fakeapp && \ 25 | phonegap cordova platform add android@${ANDROID_PLATFORM_VERSION} && \ 26 | phonegap build android --verbose && \ 27 | cd && \ 28 | rm -rf /tmp/fakeapp 29 | ENV CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL file:///opt/gradle-${GRADLE_VERSION}-all.zip 30 | ADD init.gradle /root/.gradle 31 | 32 | VOLUME ["/data"] 33 | WORKDIR /data 34 | 35 | EXPOSE 3000 36 | -------------------------------------------------------------------------------- /phonegap/9.0.0_android-34/README.md: -------------------------------------------------------------------------------- 1 | ## PhoneGap Dockerfile 2 | 3 | This repository contains **Dockerfile** of [PhoneGap](http://phonegap.com/) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/phonegap/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/phonegap` 11 | 12 | ### Usage 13 | 14 | #### Run `phonegap create` 15 | 16 | docker run -v :/data webratio/phonegap phonegap create 17 | 18 | #### Run `phonegap serve` 19 | 20 | docker run -d -p :3000 -v :/data webratio/phonegap phonegap serve -p 3000 21 | 22 | #### Run `phonegap build android` 23 | 24 | docker run -v :/data webratio/phonegap phonegap build android 25 | -------------------------------------------------------------------------------- /phonegap/9.0.0_android-34/init.gradle: -------------------------------------------------------------------------------- 1 | // Defines the correct order of the repositories 2 | 3 | buildscript { 4 | repositories { 5 | maven { 6 | url "https://maven.google.com" 7 | } 8 | jcenter() 9 | } 10 | } 11 | 12 | allprojects { 13 | repositories { 14 | maven { 15 | url "https://maven.google.com" 16 | } 17 | jcenter() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /postgresql-with-plperl/8.4/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM postgres:8.4 2 | 3 | RUN apt-get update \ 4 | && apt-get install -y postgresql-plperl-8.4=8.4.22-1.pgdg70+1 \ 5 | && rm -rf /var/lib/apt/lists/* -------------------------------------------------------------------------------- /postgresql-with-plperl/8.4/README.md: -------------------------------------------------------------------------------- 1 | ## PhoneGap Dockerfile 2 | 3 | This repository contains **Dockerfile** of [PostgreSQL](http://www.postgresql.org/) combined with PL/Perl for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/phonegap/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/postgresql-with-plperl:8.4` 11 | 12 | ### Usage 13 | 14 | See the verified PostgreSQL image [documentation](https://registry.hub.docker.com/_/postgres/) 15 | 16 | #### Add PL/Perl to a database 17 | 18 | docker exec createlang -U plperl 19 | -------------------------------------------------------------------------------- /rabbitmq-cluster/3.6.15/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rabbitmq:3.6.15 2 | 3 | RUN rabbitmq-plugins enable --offline rabbitmq_management 4 | 5 | RUN apt-get update && apt-get install -y --no-install-recommends ldnsutils && apt-get -y autoclean && rm -rf /var/lib/apt/lists/*; 6 | 7 | ADD rabbitmq.config /etc/rabbitmq/ 8 | 9 | RUN chmod u+rw /etc/rabbitmq/rabbitmq.config \ 10 | && chown rabbitmq:rabbitmq /etc/rabbitmq/rabbitmq.config 11 | 12 | ADD rabbitmq-cluster-entrypoint.sh / 13 | RUN chmod +x /rabbitmq-cluster-entrypoint.sh 14 | ENTRYPOINT ["/rabbitmq-cluster-entrypoint.sh"] 15 | CMD [] 16 | -------------------------------------------------------------------------------- /rabbitmq-cluster/3.6.15/README.md: -------------------------------------------------------------------------------- 1 | ## RabbitMQ Cluster Dockerfile 2 | 3 | This repository contains **Dockerfile** of [RabbitMQ](https://www.rabbitmq.com/) suitable for clustering for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/rabbitmq-cluster/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/rabbitmq-cluster:3.6.15` -------------------------------------------------------------------------------- /rabbitmq-cluster/3.6.15/rabbitmq-cluster-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -x 3 | 4 | 5 | wait_network() { 6 | 7 | echo "Start rabbit node. Waiting network is up ..." 8 | sleep 5 9 | 10 | 11 | RABBIT_HOST=`echo $RABBITMQ_NODENAME | cut -d'@' -f 2` 12 | 13 | if [ -z "$RABBIT_HOST" ]; then 14 | echo "Wrong $RABBITMQ_NODENAME" 15 | exit 1 16 | fi 17 | 18 | n=1 19 | while [[ $(drill $RABBIT_HOST | grep $RABBIT_HOST | tail -n +2 | awk '{print $5}' | grep '^10.0' | wc -c) -eq 0 ]] && [[ $n -le 10 ]] 20 | do 21 | n=$(( n+1 )) 22 | sleep 5 23 | done 24 | 25 | 26 | if [ $n -gt 10 ]; then 27 | echo "Problem to resolv IP for $RABBITMQ_NODENAME" 28 | exit 1 29 | fi 30 | 31 | IP_RESOLV=$(drill $RABBIT_HOST | grep $RABBIT_HOST | tail -n +2 | awk '{print $5}') 32 | 33 | 34 | echo "Rabbit IP $IP_RESOLV for Rabbit nodename $RABBITMQ_NODENAME" 35 | 36 | } 37 | 38 | setup_cluster() { 39 | 40 | if [ -z "$CLUSTER_WITH" ]; then 41 | echo "Setup single node ${RABBITMQ_NODENAME} in High Availability at the first starting" 42 | # Check when pid of rabbitmq-server is created; first node only sets HA policy 43 | rabbitmqctl wait /var/lib/rabbitmq/mnesia/$RABBITMQ_NODENAME.pid && sleep 20 && \ 44 | rabbitmqctl set_policy ha-all '^(?!amq\.|springCloudBus\.).*' '{"ha-mode": "all", "ha-sync-mode": "automatic"}' & 45 | else 46 | echo "Setup Cluster with $CLUSTER_WITH for node ${RABBITMQ_NODENAME}" 47 | # Check when pid of rabbitmq-server is created; this node must to cluster with others node; if this node ($RABBITMQ_NODENAME) is alone, stop app, joins in the cluster with ($CLUSTER_WITH) and start app. 48 | rabbitmqctl wait /var/lib/rabbitmq/mnesia/$RABBITMQ_NODENAME.pid && sleep 20 && \ 49 | [ $(rabbitmqctl cluster_status | grep -oE '\{disc,\[(.*)\]' | grep $RABBITMQ_NODENAME |cut -d"[" -f2 | cut -d"]" -f1 | cut -d"," -f1- --output-delimiter=' ' | wc -w) -eq 1 ] && \ 50 | rabbitmqctl stop_app && \ 51 | rabbitmqctl join_cluster ${CLUSTER_WITH} && \ 52 | rabbitmqctl start_app & 53 | fi 54 | 55 | } 56 | 57 | 58 | wait_network 59 | 60 | setup_cluster 61 | 62 | # run rabbitmq-server 63 | /docker-entrypoint.sh rabbitmq-server 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /rabbitmq-cluster/3.6.15/rabbitmq.config: -------------------------------------------------------------------------------- 1 | [{rabbit, [{loopback_users, []}, {cluster_partition_handling, pause_minority}]}]. -------------------------------------------------------------------------------- /rabbitmq-cluster/3.6.6/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rabbitmq:3.6.6 2 | 3 | RUN rabbitmq-plugins enable --offline rabbitmq_management 4 | 5 | EXPOSE 15671 15672 6 | 7 | ADD rabbitmq-cluster-entrypoint.sh / 8 | RUN chmod +x /rabbitmq-cluster-entrypoint.sh 9 | ENTRYPOINT ["/rabbitmq-cluster-entrypoint.sh"] 10 | CMD [] -------------------------------------------------------------------------------- /rabbitmq-cluster/3.6.6/rabbitmq-cluster-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ -z "$CLUSTER_WITH" ]; then 4 | sleep 15 && rabbitmqctl set_policy ha-all '^(?!amq\.).*' '{"ha-mode": "all", "ha-sync-mode": "automatic"}' & 5 | else 6 | sleep 15 && rabbitmqctl stop_app && rabbitmqctl reset && rabbitmqctl join_cluster ${CLUSTER_WITH} && rabbitmqctl start_app & 7 | fi 8 | /docker-entrypoint.sh rabbitmq-server -------------------------------------------------------------------------------- /rabbitmq-cluster/3.7.18/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rabbitmq:3.7.18 2 | 3 | RUN rabbitmq-plugins enable --offline rabbitmq_management 4 | 5 | RUN apt-get update && apt-get install -y --no-install-recommends ldnsutils && apt-get -y autoclean && rm -rf /var/lib/apt/lists/*; 6 | 7 | ADD rabbitmq.config /etc/rabbitmq/ 8 | 9 | RUN chmod u+rw /etc/rabbitmq/rabbitmq.config \ 10 | && chown rabbitmq:rabbitmq /etc/rabbitmq/rabbitmq.config 11 | 12 | ADD rabbitmq-cluster-entrypoint.sh / 13 | RUN chmod +x /rabbitmq-cluster-entrypoint.sh 14 | ENTRYPOINT ["/rabbitmq-cluster-entrypoint.sh"] 15 | CMD [] 16 | -------------------------------------------------------------------------------- /rabbitmq-cluster/3.7.18/rabbitmq-cluster-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -x 3 | 4 | 5 | wait_network() { 6 | 7 | echo "Start rabbit node. Waiting network is up ..." 8 | sleep 5 9 | 10 | 11 | RABBIT_HOST=`echo $RABBITMQ_NODENAME | cut -d'@' -f 2` 12 | 13 | if [ -z "$RABBIT_HOST" ]; then 14 | echo "Wrong $RABBITMQ_NODENAME" 15 | exit 1 16 | fi 17 | 18 | n=1 19 | while [[ $(drill $RABBIT_HOST | grep $RABBIT_HOST | tail -n +2 | awk '{print $5}' | grep '^10.0' | wc -c) -eq 0 ]] && [[ $n -le 10 ]] 20 | do 21 | n=$(( n+1 )) 22 | sleep 5 23 | done 24 | 25 | 26 | if [ $n -gt 10 ]; then 27 | echo "Problem to resolv IP for $RABBITMQ_NODENAME" 28 | exit 1 29 | fi 30 | 31 | IP_RESOLV=$(drill $RABBIT_HOST | grep $RABBIT_HOST | tail -n +2 | awk '{print $5}') 32 | 33 | 34 | echo "Rabbit IP $IP_RESOLV for Rabbit nodename $RABBITMQ_NODENAME" 35 | 36 | } 37 | 38 | setup_cluster() { 39 | 40 | if [ -z "$CLUSTER_WITH" ]; then 41 | echo "Setup single node ${RABBITMQ_NODENAME} in High Availability at the first starting" 42 | # Check when pid of rabbitmq-server is created; first node only sets HA policy 43 | rabbitmqctl wait /var/lib/rabbitmq/mnesia/$RABBITMQ_NODENAME.pid && sleep 20 && \ 44 | rabbitmqctl set_policy ha-all '^(?!amq\.|springCloudBus\.).*' '{"ha-mode": "all", "ha-sync-mode": "automatic"}' & 45 | else 46 | echo "Setup Cluster with $CLUSTER_WITH for node ${RABBITMQ_NODENAME}" 47 | # Check when pid of rabbitmq-server is created; this node must to cluster with others node; if this node ($RABBITMQ_NODENAME) is alone, stop app, joins in the cluster with ($CLUSTER_WITH) and start app. 48 | rabbitmqctl wait /var/lib/rabbitmq/mnesia/$RABBITMQ_NODENAME.pid && sleep 20 && \ 49 | [ $(rabbitmqctl cluster_status | grep -oE '\{disc,\[(.*)\]' | grep $RABBITMQ_NODENAME |cut -d"[" -f2 | cut -d"]" -f1 | cut -d"," -f1- --output-delimiter=' ' | wc -w) -eq 1 ] && \ 50 | rabbitmqctl stop_app && \ 51 | rabbitmqctl join_cluster ${CLUSTER_WITH} && \ 52 | rabbitmqctl start_app & 53 | fi 54 | 55 | } 56 | 57 | 58 | wait_network 59 | 60 | setup_cluster 61 | 62 | # run rabbitmq-server 63 | /usr/local/bin/docker-entrypoint.sh rabbitmq-server 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /rabbitmq-cluster/3.7.18/rabbitmq.config: -------------------------------------------------------------------------------- 1 | [{rabbit, [{loopback_users, []}, {cluster_partition_handling, pause_minority}]}]. -------------------------------------------------------------------------------- /rabbitmq-cluster/3.8.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rabbitmq:3.8.0 2 | 3 | RUN rabbitmq-plugins enable --offline rabbitmq_management rabbitmq_prometheus 4 | 5 | RUN apt-get update && apt-get install -y --no-install-recommends ldnsutils jq && apt-get -y autoclean && rm -rf /var/lib/apt/lists/*; 6 | 7 | ADD rabbitmq.config /etc/rabbitmq/ 8 | 9 | RUN chmod u+rw /etc/rabbitmq/rabbitmq.config \ 10 | && chown rabbitmq:rabbitmq /etc/rabbitmq/rabbitmq.config 11 | 12 | ADD rabbitmq-cluster-entrypoint.sh / 13 | RUN chmod +x /rabbitmq-cluster-entrypoint.sh 14 | ENTRYPOINT ["/rabbitmq-cluster-entrypoint.sh"] 15 | CMD [] 16 | -------------------------------------------------------------------------------- /rabbitmq-cluster/3.8.0/README.md: -------------------------------------------------------------------------------- 1 | ## RabbitMQ Cluster Dockerfile 2 | 3 | This repository contains **Dockerfile** of [RabbitMQ](https://www.rabbitmq.com/) suitable for clustering for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/rabbitmq-cluster/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/rabbitmq-cluster:3.7.18` -------------------------------------------------------------------------------- /rabbitmq-cluster/3.8.0/rabbitmq-cluster-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -x 3 | 4 | 5 | wait_network() { 6 | 7 | echo "Start rabbit node. Waiting network is up ..." 8 | sleep 5 9 | 10 | 11 | RABBIT_HOST=`echo $RABBITMQ_NODENAME | cut -d'@' -f 2` 12 | 13 | if [ -z "$RABBIT_HOST" ]; then 14 | echo "Wrong $RABBITMQ_NODENAME" 15 | exit 1 16 | fi 17 | 18 | n=1 19 | while [[ $(drill $RABBIT_HOST | grep $RABBIT_HOST | tail -n +2 | awk '{print $5}' | grep '^10.0' | wc -c) -eq 0 ]] && [[ $n -le 10 ]] 20 | do 21 | n=$(( n+1 )) 22 | sleep 5 23 | done 24 | 25 | 26 | if [ $n -gt 10 ]; then 27 | echo "Problem to resolv IP for $RABBITMQ_NODENAME" 28 | exit 1 29 | fi 30 | 31 | IP_RESOLV=$(drill $RABBIT_HOST | grep $RABBIT_HOST | tail -n +2 | awk '{print $5}') 32 | 33 | 34 | echo "Rabbit IP $IP_RESOLV for Rabbit nodename $RABBITMQ_NODENAME" 35 | 36 | } 37 | 38 | setup_cluster() { 39 | 40 | if [ -z "$CLUSTER_WITH" ]; then 41 | echo "Setup single node ${RABBITMQ_NODENAME} in High Availability at the first starting" 42 | # Check when pid of rabbitmq-server is created; first node only sets HA policy 43 | rabbitmqctl wait /var/lib/rabbitmq/mnesia/$RABBITMQ_NODENAME.pid && sleep 20 && \ 44 | rabbitmqctl set_policy ha-all '^(?!amq\.|springCloudBus\.).*' '{"ha-mode": "all", "ha-sync-mode": "automatic"}' & 45 | else 46 | echo "Setup Cluster with $CLUSTER_WITH for node ${RABBITMQ_NODENAME}" 47 | # Check when pid of rabbitmq-server is created; this node must to cluster with others node; if this node ($RABBITMQ_NODENAME) is alone, stop app, joins in the cluster with ($CLUSTER_WITH) and start app. 48 | rabbitmqctl wait /var/lib/rabbitmq/mnesia/$RABBITMQ_NODENAME.pid && sleep 20 && \ 49 | [ $(rabbitmqctl cluster_status --formatter json | jq '.disk_nodes | length' ) -eq 1 ] && \ 50 | rabbitmqctl stop_app && \ 51 | rabbitmqctl join_cluster ${CLUSTER_WITH} && \ 52 | rabbitmqctl start_app & 53 | fi 54 | 55 | } 56 | 57 | 58 | wait_network 59 | 60 | setup_cluster 61 | 62 | # run rabbitmq-server 63 | /usr/local/bin/docker-entrypoint.sh rabbitmq-server 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /rabbitmq-cluster/3.8.0/rabbitmq.config: -------------------------------------------------------------------------------- 1 | [{rabbit, [{loopback_users, []}, {cluster_partition_handling, pause_minority}]}]. -------------------------------------------------------------------------------- /rabbitmq-cluster/3.8.1-beta.1-alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rabbitmq:3.8.1-beta.1-alpine 2 | 3 | RUN rabbitmq-plugins enable --offline rabbitmq_management rabbitmq_prometheus 4 | 5 | RUN apk --no-cache add drill jq 6 | 7 | ADD rabbitmq.config /etc/rabbitmq/ 8 | 9 | RUN chmod u+rw /etc/rabbitmq/rabbitmq.config \ 10 | && chown rabbitmq:rabbitmq /etc/rabbitmq/rabbitmq.config 11 | 12 | ADD rabbitmq-cluster-entrypoint.sh / 13 | RUN chmod +x /rabbitmq-cluster-entrypoint.sh 14 | ENTRYPOINT ["/rabbitmq-cluster-entrypoint.sh"] 15 | CMD [] 16 | -------------------------------------------------------------------------------- /rabbitmq-cluster/3.8.1-beta.1-alpine/rabbitmq-cluster-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -x 3 | 4 | 5 | wait_network() { 6 | 7 | echo "Start rabbit node. Waiting network is up ..." 8 | sleep 5 9 | 10 | 11 | RABBIT_HOST=`echo $RABBITMQ_NODENAME | cut -d'@' -f 2` 12 | 13 | if [ -z "$RABBIT_HOST" ]; then 14 | echo "Wrong $RABBITMQ_NODENAME" 15 | exit 1 16 | fi 17 | 18 | n=1 19 | while [[ $(drill $RABBIT_HOST | grep $RABBIT_HOST | tail -n +2 | awk '{print $5}' | grep '^10.0' | wc -c) -eq 0 ]] && [[ $n -le 10 ]] 20 | do 21 | n=$(( n+1 )) 22 | sleep 5 23 | done 24 | 25 | 26 | if [ $n -gt 10 ]; then 27 | echo "Problem to resolv IP for $RABBITMQ_NODENAME" 28 | exit 1 29 | fi 30 | 31 | IP_RESOLV=$(drill $RABBIT_HOST | grep $RABBIT_HOST | tail -n +2 | awk '{print $5}') 32 | 33 | 34 | echo "Rabbit IP $IP_RESOLV for Rabbit nodename $RABBITMQ_NODENAME" 35 | 36 | } 37 | 38 | setup_cluster() { 39 | 40 | if [ -z "$CLUSTER_WITH" ]; then 41 | echo "Setup single node ${RABBITMQ_NODENAME} in High Availability at the first starting" 42 | # Check when pid of rabbitmq-server is created; first node only sets HA policy 43 | rabbitmqctl wait /var/lib/rabbitmq/mnesia/$RABBITMQ_NODENAME.pid && sleep 20 && \ 44 | rabbitmqctl set_policy ha-all '^(?!amq\.|springCloudBus\.).*' '{"ha-mode": "all", "ha-sync-mode": "automatic"}' & 45 | else 46 | echo "Setup Cluster with $CLUSTER_WITH for node ${RABBITMQ_NODENAME}" 47 | # Check when pid of rabbitmq-server is created; this node must to cluster with others node; if this node ($RABBITMQ_NODENAME) is alone, stop app, joins in the cluster with ($CLUSTER_WITH) and start app. 48 | rabbitmqctl wait /var/lib/rabbitmq/mnesia/$RABBITMQ_NODENAME.pid && sleep 20 && \ 49 | [ $(rabbitmqctl cluster_status --formatter json | jq '.disk_nodes | length' ) -eq 1 ] && \ 50 | rabbitmqctl stop_app && \ 51 | rabbitmqctl join_cluster ${CLUSTER_WITH} && \ 52 | rabbitmqctl start_app & 53 | fi 54 | 55 | } 56 | 57 | 58 | wait_network 59 | 60 | setup_cluster 61 | 62 | # run rabbitmq-server 63 | /usr/local/bin/docker-entrypoint.sh rabbitmq-server 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /rabbitmq-cluster/3.8.1-beta.1-alpine/rabbitmq.config: -------------------------------------------------------------------------------- 1 | [{rabbit, [{loopback_users, []}, {cluster_partition_handling, pause_minority}]}]. -------------------------------------------------------------------------------- /rabbitmq-cluster/3.8.1-beta.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rabbitmq:3.8.1-beta.1 2 | 3 | RUN rabbitmq-plugins enable --offline rabbitmq_management rabbitmq_prometheus 4 | 5 | RUN apt-get update && apt-get install -y --no-install-recommends ldnsutils jq && apt-get -y autoclean && rm -rf /var/lib/apt/lists/*; 6 | 7 | ADD rabbitmq.config /etc/rabbitmq/ 8 | 9 | RUN chmod u+rw /etc/rabbitmq/rabbitmq.config \ 10 | && chown rabbitmq:rabbitmq /etc/rabbitmq/rabbitmq.config 11 | 12 | ADD rabbitmq-cluster-entrypoint.sh / 13 | RUN chmod +x /rabbitmq-cluster-entrypoint.sh 14 | ENTRYPOINT ["/rabbitmq-cluster-entrypoint.sh"] 15 | CMD [] 16 | -------------------------------------------------------------------------------- /rabbitmq-cluster/3.8.1-beta.1/rabbitmq-cluster-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -x 3 | 4 | 5 | wait_network() { 6 | 7 | echo "Start rabbit node. Waiting network is up ..." 8 | sleep 5 9 | 10 | 11 | RABBIT_HOST=`echo $RABBITMQ_NODENAME | cut -d'@' -f 2` 12 | 13 | if [ -z "$RABBIT_HOST" ]; then 14 | echo "Wrong $RABBITMQ_NODENAME" 15 | exit 1 16 | fi 17 | 18 | n=1 19 | while [[ $(drill $RABBIT_HOST | grep $RABBIT_HOST | tail -n +2 | awk '{print $5}' | grep '^10.0' | wc -c) -eq 0 ]] && [[ $n -le 10 ]] 20 | do 21 | n=$(( n+1 )) 22 | sleep 5 23 | done 24 | 25 | 26 | if [ $n -gt 10 ]; then 27 | echo "Problem to resolv IP for $RABBITMQ_NODENAME" 28 | exit 1 29 | fi 30 | 31 | IP_RESOLV=$(drill $RABBIT_HOST | grep $RABBIT_HOST | tail -n +2 | awk '{print $5}') 32 | 33 | 34 | echo "Rabbit IP $IP_RESOLV for Rabbit nodename $RABBITMQ_NODENAME" 35 | 36 | } 37 | 38 | setup_cluster() { 39 | 40 | if [ -z "$CLUSTER_WITH" ]; then 41 | echo "Setup single node ${RABBITMQ_NODENAME} in High Availability at the first starting" 42 | # Check when pid of rabbitmq-server is created; first node only sets HA policy 43 | rabbitmqctl wait /var/lib/rabbitmq/mnesia/$RABBITMQ_NODENAME.pid && sleep 20 && \ 44 | rabbitmqctl set_policy ha-all '^(?!amq\.|springCloudBus\.).*' '{"ha-mode": "all", "ha-sync-mode": "automatic"}' & 45 | else 46 | echo "Setup Cluster with $CLUSTER_WITH for node ${RABBITMQ_NODENAME}" 47 | # Check when pid of rabbitmq-server is created; this node must to cluster with others node; if this node ($RABBITMQ_NODENAME) is alone, stop app, joins in the cluster with ($CLUSTER_WITH) and start app. 48 | rabbitmqctl wait /var/lib/rabbitmq/mnesia/$RABBITMQ_NODENAME.pid && sleep 20 && \ 49 | [ $(rabbitmqctl cluster_status --formatter json | jq '.disk_nodes | length' ) -eq 1 ] && \ 50 | rabbitmqctl stop_app && \ 51 | rabbitmqctl join_cluster ${CLUSTER_WITH} && \ 52 | rabbitmqctl start_app & 53 | fi 54 | 55 | } 56 | 57 | 58 | wait_network 59 | 60 | setup_cluster 61 | 62 | # run rabbitmq-server 63 | /usr/local/bin/docker-entrypoint.sh rabbitmq-server 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /rabbitmq-cluster/3.8.1-beta.1/rabbitmq.config: -------------------------------------------------------------------------------- 1 | [{rabbit, [{loopback_users, []}, {cluster_partition_handling, pause_minority}]}]. -------------------------------------------------------------------------------- /rabbitmq-cluster/3.8.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rabbitmq:3.8.1 2 | 3 | RUN rabbitmq-plugins enable --offline rabbitmq_management rabbitmq_prometheus 4 | 5 | RUN apt-get update && apt-get install -y --no-install-recommends ldnsutils jq && apt-get -y autoclean && rm -rf /var/lib/apt/lists/*; 6 | 7 | ADD rabbitmq.config /etc/rabbitmq/ 8 | 9 | RUN chmod u+rw /etc/rabbitmq/rabbitmq.config \ 10 | && chown rabbitmq:rabbitmq /etc/rabbitmq/rabbitmq.config 11 | 12 | ADD rabbitmq-cluster-entrypoint.sh / 13 | RUN chmod +x /rabbitmq-cluster-entrypoint.sh 14 | ENTRYPOINT ["/rabbitmq-cluster-entrypoint.sh"] 15 | CMD [] 16 | -------------------------------------------------------------------------------- /rabbitmq-cluster/3.8.1/rabbitmq-cluster-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -x 3 | 4 | 5 | wait_network() { 6 | 7 | echo "Start rabbit node. Waiting network is up ..." 8 | sleep 5 9 | 10 | 11 | RABBIT_HOST=`echo $RABBITMQ_NODENAME | cut -d'@' -f 2` 12 | 13 | if [ -z "$RABBIT_HOST" ]; then 14 | echo "Wrong $RABBITMQ_NODENAME" 15 | exit 1 16 | fi 17 | 18 | n=1 19 | while [[ $(drill $RABBIT_HOST | grep $RABBIT_HOST | tail -n +2 | awk '{print $5}' | grep '^10.0' | wc -c) -eq 0 ]] && [[ $n -le 10 ]] 20 | do 21 | n=$(( n+1 )) 22 | sleep 5 23 | done 24 | 25 | 26 | if [ $n -gt 10 ]; then 27 | echo "Problem to resolv IP for $RABBITMQ_NODENAME" 28 | exit 1 29 | fi 30 | 31 | IP_RESOLV=$(drill $RABBIT_HOST | grep $RABBIT_HOST | tail -n +2 | awk '{print $5}') 32 | 33 | 34 | echo "Rabbit IP $IP_RESOLV for Rabbit nodename $RABBITMQ_NODENAME" 35 | 36 | } 37 | 38 | setup_cluster() { 39 | 40 | if [ -z "$CLUSTER_WITH" ]; then 41 | echo "Setup single node ${RABBITMQ_NODENAME} in High Availability at the first starting" 42 | # Check when pid of rabbitmq-server is created; first node only sets HA policy 43 | rabbitmqctl wait /var/lib/rabbitmq/mnesia/$RABBITMQ_NODENAME.pid && sleep 20 && \ 44 | rabbitmqctl set_policy ha-all '^(?!amq\.|springCloudBus\.).*' '{"ha-mode": "all", "ha-sync-mode": "automatic"}' & 45 | else 46 | echo "Setup Cluster with $CLUSTER_WITH for node ${RABBITMQ_NODENAME}" 47 | # Check when pid of rabbitmq-server is created; this node must to cluster with others node; if this node ($RABBITMQ_NODENAME) is alone, stop app, joins in the cluster with ($CLUSTER_WITH) and start app. 48 | rabbitmqctl wait /var/lib/rabbitmq/mnesia/$RABBITMQ_NODENAME.pid && sleep 20 && \ 49 | [ $(rabbitmqctl cluster_status --formatter json | jq '.disk_nodes | length' ) -eq 1 ] && \ 50 | rabbitmqctl stop_app && \ 51 | rabbitmqctl join_cluster ${CLUSTER_WITH} && \ 52 | rabbitmqctl start_app & 53 | fi 54 | 55 | } 56 | 57 | 58 | wait_network 59 | 60 | setup_cluster 61 | 62 | # run rabbitmq-server 63 | /usr/local/bin/docker-entrypoint.sh rabbitmq-server 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /rabbitmq-cluster/3.8.1/rabbitmq.config: -------------------------------------------------------------------------------- 1 | [{rabbit, [{loopback_users, []}, {cluster_partition_handling, pause_minority}]}]. -------------------------------------------------------------------------------- /redis-sentinel/3.2.6/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM redis:3.2.6 2 | 3 | ENV PORT 26379 4 | ENV MASTER_NAME master 5 | ENV MASTER_IP 127.0.0.1 6 | ENV MASTER_PORT 6379 7 | ENV QUORUM 2 8 | ENV DOWN_AFTER 30000 9 | ENV FAILOVER_TIMEOUT 180000 10 | ENV PARALLEL_SYNCS 1 11 | 12 | ADD sentinel.conf /etc/redis/sentinel.conf 13 | ADD redis-sentinel-entrypoint.sh / 14 | RUN chmod +x /redis-sentinel-entrypoint.sh 15 | ENTRYPOINT ["/redis-sentinel-entrypoint.sh"] 16 | CMD [] -------------------------------------------------------------------------------- /redis-sentinel/3.2.6/redis-sentinel-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | sed -i "s|@PORT@|$PORT|g" /etc/redis/sentinel.conf 4 | sed -i "s|@MASTER_NAME@|$MASTER_NAME|g" /etc/redis/sentinel.conf 5 | sed -i "s|@MASTER_IP@|$MASTER_IP|g" /etc/redis/sentinel.conf 6 | sed -i "s|@MASTER_PORT@|$MASTER_PORT|g" /etc/redis/sentinel.conf 7 | sed -i "s|@QUORUM@|$QUORUM|g" /etc/redis/sentinel.conf 8 | sed -i "s|@DOWN_AFTER@|$DOWN_AFTER|g" /etc/redis/sentinel.conf 9 | sed -i "s|@FAILOVER_TIMEOUT@|$FAILOVER_TIMEOUT|g" /etc/redis/sentinel.conf 10 | sed -i "s|@PARALLEL_SYNCS@|$PARALLEL_SYNCS|g" /etc/redis/sentinel.conf 11 | chown redis:redis /etc/redis/sentinel.conf 12 | docker-entrypoint.sh redis-server /etc/redis/sentinel.conf --sentinel -------------------------------------------------------------------------------- /redis-sentinel/3.2.6/sentinel.conf: -------------------------------------------------------------------------------- 1 | # Example sentinel.conf 2 | 3 | # *** IMPORTANT *** 4 | # 5 | # By default Sentinel will not be reachable from interfaces different than 6 | # localhost, either use the 'bind' directive to bind to a list of network 7 | # interfaces, or disable protected mode with "protected-mode no" by 8 | # adding it to this configuration file. 9 | # 10 | # Before doing that MAKE SURE the instance is protected from the outside 11 | # world via firewalling or other means. 12 | # 13 | # For example you may use one of the following: 14 | # 15 | # bind 127.0.0.1 192.168.1.1 16 | # 17 | # protected-mode no 18 | 19 | # port 20 | # The port that this sentinel instance will run on 21 | port @PORT@ 22 | 23 | # sentinel announce-ip @ANNOUNCE-IP@ 24 | # sentinel announce-port @ANNOUNCE-PORT@ 25 | # 26 | # The above two configuration directives are useful in environments where, 27 | # because of NAT, Sentinel is reachable from outside via a non-local address. 28 | # 29 | # When announce-ip is provided, the Sentinel will claim the specified IP address 30 | # in HELLO messages used to gossip its presence, instead of auto-detecting the 31 | # local address as it usually does. 32 | # 33 | # Similarly when announce-port is provided and is valid and non-zero, Sentinel 34 | # will announce the specified TCP port. 35 | # 36 | # The two options don't need to be used together, if only announce-ip is 37 | # provided, the Sentinel will announce the specified IP and the server port 38 | # as specified by the "port" option. If only announce-port is provided, the 39 | # Sentinel will announce the auto-detected local IP and the specified port. 40 | # 41 | # Example: 42 | # 43 | # sentinel announce-ip 1.2.3.4 44 | 45 | # dir 46 | # Every long running process should have a well-defined working directory. 47 | # For Redis Sentinel to chdir to /tmp at startup is the simplest thing 48 | # for the process to don't interfere with administrative tasks such as 49 | # unmounting filesystems. 50 | dir /tmp 51 | 52 | # sentinel monitor 53 | # 54 | # Tells Sentinel to monitor this master, and to consider it in O_DOWN 55 | # (Objectively Down) state only if at least sentinels agree. 56 | # 57 | # Note that whatever is the ODOWN quorum, a Sentinel will require to 58 | # be elected by the majority of the known Sentinels in order to 59 | # start a failover, so no failover can be performed in minority. 60 | # 61 | # Slaves are auto-discovered, so you don't need to specify slaves in 62 | # any way. Sentinel itself will rewrite this configuration file adding 63 | # the slaves using additional configuration options. 64 | # Also note that the configuration file is rewritten when a 65 | # slave is promoted to master. 66 | # 67 | # Note: master name should not include special characters or spaces. 68 | # The valid charset is A-z 0-9 and the three characters ".-_". 69 | sentinel monitor @MASTER_NAME@ @MASTER_IP@ @MASTER_PORT@ @QUORUM@ 70 | 71 | # sentinel auth-pass 72 | # 73 | # Set the password to use to authenticate with the master and slaves. 74 | # Useful if there is a password set in the Redis instances to monitor. 75 | # 76 | # Note that the master password is also used for slaves, so it is not 77 | # possible to set a different password in masters and slaves instances 78 | # if you want to be able to monitor these instances with Sentinel. 79 | # 80 | # However you can have Redis instances without the authentication enabled 81 | # mixed with Redis instances requiring the authentication (as long as the 82 | # password set is the same for all the instances requiring the password) as 83 | # the AUTH command will have no effect in Redis instances with authentication 84 | # switched off. 85 | # 86 | # Example: 87 | # 88 | # sentinel auth-pass mymaster MySUPER--secret-0123passw0rd 89 | 90 | # sentinel down-after-milliseconds 91 | # 92 | # Number of milliseconds the master (or any attached slave or sentinel) should 93 | # be unreachable (as in, not acceptable reply to PING, continuously, for the 94 | # specified period) in order to consider it in S_DOWN state (Subjectively 95 | # Down). 96 | # 97 | # Default is 30 seconds. 98 | sentinel down-after-milliseconds @MASTER_NAME@ @DOWN_AFTER@ 99 | 100 | # sentinel parallel-syncs 101 | # 102 | # How many slaves we can reconfigure to point to the new slave simultaneously 103 | # during the failover. Use a low number if you use the slaves to serve query 104 | # to avoid that all the slaves will be unreachable at about the same 105 | # time while performing the synchronization with the master. 106 | sentinel parallel-syncs @MASTER_NAME@ @PARALLEL_SYNCS@ 107 | 108 | # sentinel failover-timeout 109 | # 110 | # Specifies the failover timeout in milliseconds. It is used in many ways: 111 | # 112 | # - The time needed to re-start a failover after a previous failover was 113 | # already tried against the same master by a given Sentinel, is two 114 | # times the failover timeout. 115 | # 116 | # - The time needed for a slave replicating to a wrong master according 117 | # to a Sentinel current configuration, to be forced to replicate 118 | # with the right master, is exactly the failover timeout (counting since 119 | # the moment a Sentinel detected the misconfiguration). 120 | # 121 | # - The time needed to cancel a failover that is already in progress but 122 | # did not produced any configuration change (SLAVEOF NO ONE yet not 123 | # acknowledged by the promoted slave). 124 | # 125 | # - The maximum time a failover in progress waits for all the slaves to be 126 | # reconfigured as slaves of the new master. However even after this time 127 | # the slaves will be reconfigured by the Sentinels anyway, but not with 128 | # the exact parallel-syncs progression as specified. 129 | # 130 | # Default is 3 minutes. 131 | sentinel failover-timeout @MASTER_NAME@ @FAILOVER_TIMEOUT@ 132 | 133 | # SCRIPTS EXECUTION 134 | # 135 | # sentinel notification-script and sentinel reconfig-script are used in order 136 | # to configure scripts that are called to notify the system administrator 137 | # or to reconfigure clients after a failover. The scripts are executed 138 | # with the following rules for error handling: 139 | # 140 | # If script exits with "1" the execution is retried later (up to a maximum 141 | # number of times currently set to 10). 142 | # 143 | # If script exits with "2" (or an higher value) the script execution is 144 | # not retried. 145 | # 146 | # If script terminates because it receives a signal the behavior is the same 147 | # as exit code 1. 148 | # 149 | # A script has a maximum running time of 60 seconds. After this limit is 150 | # reached the script is terminated with a SIGKILL and the execution retried. 151 | 152 | # NOTIFICATION SCRIPT 153 | # 154 | # sentinel notification-script 155 | # 156 | # Call the specified notification script for any sentinel event that is 157 | # generated in the WARNING level (for instance -sdown, -odown, and so forth). 158 | # This script should notify the system administrator via email, SMS, or any 159 | # other messaging system, that there is something wrong with the monitored 160 | # Redis systems. 161 | # 162 | # The script is called with just two arguments: the first is the event type 163 | # and the second the event description. 164 | # 165 | # The script must exist and be executable in order for sentinel to start if 166 | # this option is provided. 167 | # 168 | # Example: 169 | # 170 | # sentinel notification-script mymaster /var/redis/notify.sh 171 | 172 | # CLIENTS RECONFIGURATION SCRIPT 173 | # 174 | # sentinel client-reconfig-script 175 | # 176 | # When the master changed because of a failover a script can be called in 177 | # order to perform application-specific tasks to notify the clients that the 178 | # configuration has changed and the master is at a different address. 179 | # 180 | # The following arguments are passed to the script: 181 | # 182 | # 183 | # 184 | # is currently always "failover" 185 | # is either "leader" or "observer" 186 | # 187 | # The arguments from-ip, from-port, to-ip, to-port are used to communicate 188 | # the old address of the master and the new address of the elected slave 189 | # (now a master). 190 | # 191 | # This script should be resistant to multiple invocations. 192 | # 193 | # Example: 194 | # 195 | # sentinel client-reconfig-script mymaster /var/redis/reconfig.sh 196 | -------------------------------------------------------------------------------- /redis-sentinel/3.2.6b/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM redis:3.2.6 2 | 3 | RUN apt-get update && apt-get install -y --no-install-recommends ldnsutils 4 | 5 | ENV PORT 26379 6 | ENV MASTER_NAME master 7 | ENV MASTER_IP 127.0.0.1 8 | ENV MASTER_PORT 6379 9 | ENV QUORUM 2 10 | ENV DOWN_AFTER 30000 11 | ENV FAILOVER_TIMEOUT 180000 12 | ENV PARALLEL_SYNCS 1 13 | ENV SENTINEL_HOST localhost 14 | 15 | ADD sentinel.conf /etc/redis/sentinel.conf 16 | ADD redis-sentinel-entrypoint.sh / 17 | RUN chmod +x /redis-sentinel-entrypoint.sh 18 | ENTRYPOINT ["/redis-sentinel-entrypoint.sh"] 19 | CMD [] 20 | 21 | -------------------------------------------------------------------------------- /redis-sentinel/3.2.6b/README.md: -------------------------------------------------------------------------------- 1 | ## Redis Sentinel Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Redis Sentinel](https://redis.io/topics/sentinel) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/redis-sentinel/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/redis-sentinel:3.2.6b` 11 | * `docker pull webratio/redis-sentinel:3.2` -------------------------------------------------------------------------------- /redis-sentinel/3.2.6b/redis-sentinel-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo "Start redis sentinel monitor master. Waiting network is up ..." 4 | 5 | sleep 10 6 | 7 | IP_RESOLV=$(drill $SENTINEL_HOST | grep $SENTINEL_HOST | tail -n +2 | awk '{print $5}') 8 | 9 | echo "Sentinel ip $IP_RESOLV - hostname $SENTINEL_HOST" 10 | 11 | SENTINEL_IP=$IP_RESOLV 12 | 13 | sed -i "s|@PORT@|$PORT|g" /etc/redis/sentinel.conf 14 | sed -i "s|@MASTER_NAME@|$MASTER_NAME|g" /etc/redis/sentinel.conf 15 | sed -i "s|@MASTER_IP@|$MASTER_IP|g" /etc/redis/sentinel.conf 16 | sed -i "s|@SENTINEL_IP@|$SENTINEL_IP|g" /etc/redis/sentinel.conf 17 | sed -i "s|@MASTER_PORT@|$MASTER_PORT|g" /etc/redis/sentinel.conf 18 | sed -i "s|@QUORUM@|$QUORUM|g" /etc/redis/sentinel.conf 19 | sed -i "s|@DOWN_AFTER@|$DOWN_AFTER|g" /etc/redis/sentinel.conf 20 | sed -i "s|@FAILOVER_TIMEOUT@|$FAILOVER_TIMEOUT|g" /etc/redis/sentinel.conf 21 | sed -i "s|@PARALLEL_SYNCS@|$PARALLEL_SYNCS|g" /etc/redis/sentinel.conf 22 | chown redis:redis /etc/redis/sentinel.conf 23 | docker-entrypoint.sh redis-server /etc/redis/sentinel.conf --sentinel 24 | 25 | -------------------------------------------------------------------------------- /redis-sentinel/3.2.6b/sentinel.conf: -------------------------------------------------------------------------------- 1 | port @PORT@ 2 | 3 | dir /tmp 4 | 5 | sentinel monitor @MASTER_NAME@ @MASTER_IP@ @MASTER_PORT@ @QUORUM@ 6 | 7 | sentinel down-after-milliseconds @MASTER_NAME@ @DOWN_AFTER@ 8 | 9 | sentinel parallel-syncs @MASTER_NAME@ @PARALLEL_SYNCS@ 10 | 11 | sentinel failover-timeout @MASTER_NAME@ @FAILOVER_TIMEOUT@ 12 | 13 | sentinel announce-ip @SENTINEL_IP@ 14 | 15 | 16 | -------------------------------------------------------------------------------- /redis/3.2.6b/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM redis:3.2.6 2 | 3 | RUN apt-get update && apt-get install -y --no-install-recommends ldnsutils 4 | 5 | ENV MIN_SLAVES_TO_WRITE 1 6 | ENV MIN_SLAVES_MAX_LAG 10 7 | ENV SLAVE_ANNOUNCE_HOST localhost 8 | 9 | COPY entrypoint.sh /usr/local/bin/ 10 | 11 | RUN chmod +x /usr/local/bin/entrypoint.sh 12 | 13 | WORKDIR /redis 14 | 15 | COPY redis.conf . 16 | 17 | ENTRYPOINT ["entrypoint.sh"] 18 | -------------------------------------------------------------------------------- /redis/3.2.6b/README.md: -------------------------------------------------------------------------------- 1 | ## Redis Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Redis](https://redis.io) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/redis/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/redis:3.2.6b` 11 | -------------------------------------------------------------------------------- /redis/3.2.6b/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo "Start redis monitor master. Waiting network is up ..." 4 | sleep 10 5 | 6 | IP_RESOLV=$(drill $SLAVE_ANNOUNCE_HOST | grep $SLAVE_ANNOUNCE_HOST | tail -n +2 | awk '{print $5}') 7 | 8 | echo "Slave ip $IP_RESOLV - hostname $SLAVE_ANNOUNCE_HOST" 9 | 10 | SLAVE_ANNOUNCE_IP=$IP_RESOLV 11 | 12 | echo "Starting redis-server: Slave Announce Ip = $SLAVE_ANNOUNCE_IP" 13 | 14 | sed -i "s|@MIN_SLAVES_TO_WRITE@|$MIN_SLAVES_TO_WRITE|g" /redis/redis.conf 15 | sed -i "s|@MIN_SLAVES_MAX_LAG@|$MIN_SLAVES_MAX_LAG|g" /redis/redis.conf 16 | sed -i "s|@SLAVE_ANNOUNCE_IP@|$SLAVE_ANNOUNCE_IP|g" /redis/redis.conf 17 | 18 | if [ ! -z "$SLAVE_OF" ]; then 19 | sed -i "s|@SLAVE_OF@|$SLAVE_OF|g" /redis/redis.conf 20 | else 21 | sed -i "s|slaveof @SLAVE_OF@|# slaveof @SLAVE_OF@|g" /redis/redis.conf 22 | fi 23 | 24 | 25 | redis-server /redis/redis.conf 26 | -------------------------------------------------------------------------------- /redis/3.2.6b/redis.conf: -------------------------------------------------------------------------------- 1 | # Redis configuration file. 2 | 3 | # It is possible for a master to stop accepting writes if there are less than 4 | # N slaves connected, having a lag less or equal than M seconds. 5 | # 6 | # The N slaves need to be in "online" state. 7 | # 8 | # The lag in seconds, that must be <= the specified value, is calculated from 9 | # the last ping received from the slave, that is usually sent every second. 10 | # 11 | # This option does not GUARANTEE that N replicas will accept the write, but 12 | # will limit the window of exposure for lost writes in case not enough slaves 13 | # are available, to the specified number of seconds. 14 | # 15 | # For example to require at least 3 slaves with a lag <= 10 seconds use: 16 | # 17 | # min-slaves-to-write 3 18 | # min-slaves-max-lag 10 19 | # 20 | # Setting one or the other to 0 disables the feature. 21 | # 22 | # By default min-slaves-to-write is set to 0 (feature disabled) and 23 | # min-slaves-max-lag is set to 10. 24 | min-slaves-to-write @MIN_SLAVES_TO_WRITE@ 25 | min-slaves-max-lag @MIN_SLAVES_MAX_LAG@ 26 | 27 | 28 | # A Redis master is able to list the address and port of the attached 29 | # slaves in different ways. For example the "INFO replication" section 30 | # offers this information, which is used, among other tools, by 31 | # Redis Sentinel in order to discover slave instances. 32 | # Another place where this info is available is in the output of the 33 | # "ROLE" command of a master. 34 | # 35 | # The listed IP and address normally reported by a slave is obtained 36 | # in the following way: 37 | # 38 | # IP: The address is auto detected by checking the peer address 39 | # of the socket used by the slave to connect with the master. 40 | # 41 | # Port: The port is communicated by the slave during the replication 42 | # handshake, and is normally the port that the slave is using to 43 | # list for connections. 44 | # 45 | # However when port forwarding or Network Address Translation (NAT) is 46 | # used, the slave may be actually reachable via different IP and port 47 | # pairs. The following two options can be used by a slave in order to 48 | # report to its master a specific set of IP and port, so that both INFO 49 | # and ROLE will report those values. 50 | # 51 | # There is no need to use both the options if you need to override just 52 | # the port or the IP address. 53 | # 54 | # slave-announce-ip 5.5.5.5 55 | # slave-announce-port 1234 56 | slave-announce-ip @SLAVE_ANNOUNCE_IP@ 57 | 58 | # Specify the server verbosity level. 59 | # This can be one of: 60 | # debug (a lot of information, useful for development/testing) 61 | # verbose (many rarely useful info, but not a mess like the debug level) 62 | # notice (moderately verbose, what you want in production probably) 63 | # warning (only very important / critical messages are logged) 64 | loglevel notice 65 | 66 | 67 | ################################# REPLICATION ################################# 68 | 69 | # Master-Slave replication. Use slaveof to make a Redis instance a copy of 70 | # another Redis server. A few things to understand ASAP about Redis replication. 71 | # 72 | # 1) Redis replication is asynchronous, but you can configure a master to 73 | # stop accepting writes if it appears to be not connected with at least 74 | # a given number of slaves. 75 | # 2) Redis slaves are able to perform a partial resynchronization with the 76 | # master if the replication link is lost for a relatively small amount of 77 | # time. You may want to configure the replication backlog size (see the next 78 | # sections of this file) with a sensible value depending on your needs. 79 | # 3) Replication is automatic and does not need user intervention. After a 80 | # network partition slaves automatically try to reconnect to masters 81 | # and resynchronize with them. 82 | # 83 | # slaveof 84 | 85 | slaveof @SLAVE_OF@ 86 | 87 | save "" 88 | -------------------------------------------------------------------------------- /redis/3.2.6c/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM redis:3.2.6 2 | 3 | RUN apt-get update && apt-get install -y --no-install-recommends ldnsutils 4 | 5 | ENV MIN_SLAVES_TO_WRITE 1 6 | ENV MIN_SLAVES_MAX_LAG 10 7 | ENV SLAVE_ANNOUNCE_HOST localhost 8 | 9 | COPY entrypoint.sh /usr/local/bin/ 10 | 11 | RUN chmod +x /usr/local/bin/entrypoint.sh 12 | 13 | WORKDIR /redis 14 | 15 | COPY redis.conf . 16 | 17 | ENTRYPOINT ["entrypoint.sh"] 18 | -------------------------------------------------------------------------------- /redis/3.2.6c/README.md: -------------------------------------------------------------------------------- 1 | ## Redis Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Redis](https://redis.io) for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/redis/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/redis:3.2.6c` 11 | -------------------------------------------------------------------------------- /redis/3.2.6c/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo "Start redis monitor master. Waiting network is up ..." 4 | sleep 10 5 | 6 | IP_RESOLV=$(drill $SLAVE_ANNOUNCE_HOST | grep $SLAVE_ANNOUNCE_HOST | tail -n +2 | awk '{print $5}') 7 | 8 | echo "Slave ip $IP_RESOLV - hostname $SLAVE_ANNOUNCE_HOST" 9 | 10 | SLAVE_ANNOUNCE_IP=$IP_RESOLV 11 | 12 | echo "Starting redis-server: Slave Announce Ip = $SLAVE_ANNOUNCE_IP" 13 | 14 | sed -i "s|@MIN_SLAVES_TO_WRITE@|$MIN_SLAVES_TO_WRITE|g" /redis/redis.conf 15 | sed -i "s|@MIN_SLAVES_MAX_LAG@|$MIN_SLAVES_MAX_LAG|g" /redis/redis.conf 16 | sed -i "s|@SLAVE_ANNOUNCE_IP@|$SLAVE_ANNOUNCE_IP|g" /redis/redis.conf 17 | 18 | if [ ! -z "$SLAVE_OF" ]; then 19 | sed -i "s|@SLAVE_OF@|$SLAVE_OF|g" /redis/redis.conf 20 | else 21 | sed -i "s|slaveof @SLAVE_OF@|# slaveof @SLAVE_OF@|g" /redis/redis.conf 22 | fi 23 | 24 | echo "Restarting automatically is delayed to 35 sec in order to avoid issue Safety of replication when master has persistence turned off" 25 | sleep 35 26 | 27 | redis-server /redis/redis.conf 28 | -------------------------------------------------------------------------------- /redis/3.2.6c/redis.conf: -------------------------------------------------------------------------------- 1 | # Redis configuration file. 2 | 3 | # It is possible for a master to stop accepting writes if there are less than 4 | # N slaves connected, having a lag less or equal than M seconds. 5 | # 6 | # The N slaves need to be in "online" state. 7 | # 8 | # The lag in seconds, that must be <= the specified value, is calculated from 9 | # the last ping received from the slave, that is usually sent every second. 10 | # 11 | # This option does not GUARANTEE that N replicas will accept the write, but 12 | # will limit the window of exposure for lost writes in case not enough slaves 13 | # are available, to the specified number of seconds. 14 | # 15 | # For example to require at least 3 slaves with a lag <= 10 seconds use: 16 | # 17 | # min-slaves-to-write 3 18 | # min-slaves-max-lag 10 19 | # 20 | # Setting one or the other to 0 disables the feature. 21 | # 22 | # By default min-slaves-to-write is set to 0 (feature disabled) and 23 | # min-slaves-max-lag is set to 10. 24 | min-slaves-to-write @MIN_SLAVES_TO_WRITE@ 25 | min-slaves-max-lag @MIN_SLAVES_MAX_LAG@ 26 | 27 | 28 | # A Redis master is able to list the address and port of the attached 29 | # slaves in different ways. For example the "INFO replication" section 30 | # offers this information, which is used, among other tools, by 31 | # Redis Sentinel in order to discover slave instances. 32 | # Another place where this info is available is in the output of the 33 | # "ROLE" command of a master. 34 | # 35 | # The listed IP and address normally reported by a slave is obtained 36 | # in the following way: 37 | # 38 | # IP: The address is auto detected by checking the peer address 39 | # of the socket used by the slave to connect with the master. 40 | # 41 | # Port: The port is communicated by the slave during the replication 42 | # handshake, and is normally the port that the slave is using to 43 | # list for connections. 44 | # 45 | # However when port forwarding or Network Address Translation (NAT) is 46 | # used, the slave may be actually reachable via different IP and port 47 | # pairs. The following two options can be used by a slave in order to 48 | # report to its master a specific set of IP and port, so that both INFO 49 | # and ROLE will report those values. 50 | # 51 | # There is no need to use both the options if you need to override just 52 | # the port or the IP address. 53 | # 54 | # slave-announce-ip 5.5.5.5 55 | # slave-announce-port 1234 56 | slave-announce-ip @SLAVE_ANNOUNCE_IP@ 57 | 58 | # Specify the server verbosity level. 59 | # This can be one of: 60 | # debug (a lot of information, useful for development/testing) 61 | # verbose (many rarely useful info, but not a mess like the debug level) 62 | # notice (moderately verbose, what you want in production probably) 63 | # warning (only very important / critical messages are logged) 64 | loglevel notice 65 | 66 | 67 | ################################# REPLICATION ################################# 68 | 69 | # Master-Slave replication. Use slaveof to make a Redis instance a copy of 70 | # another Redis server. A few things to understand ASAP about Redis replication. 71 | # 72 | # 1) Redis replication is asynchronous, but you can configure a master to 73 | # stop accepting writes if it appears to be not connected with at least 74 | # a given number of slaves. 75 | # 2) Redis slaves are able to perform a partial resynchronization with the 76 | # master if the replication link is lost for a relatively small amount of 77 | # time. You may want to configure the replication backlog size (see the next 78 | # sections of this file) with a sensible value depending on your needs. 79 | # 3) Replication is automatic and does not need user intervention. After a 80 | # network partition slaves automatically try to reconnect to masters 81 | # and resynchronize with them. 82 | # 83 | # slaveof 84 | 85 | slaveof @SLAVE_OF@ 86 | 87 | save "" 88 | -------------------------------------------------------------------------------- /rsyslog-docker/8.18/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.4 2 | 3 | RUN apk add --update rsyslog rsyslog-tls logrotate\ 4 | && rm -rf /var/cache/apk/* 5 | 6 | RUN mkdir -p /var/log/remote/ \ 7 | && mkdir -p /var/spool/rsyslog \ 8 | && chmod 644 /var/log/remote/ -R && chmod 644 /var/spool/rsyslog 9 | 10 | 11 | EXPOSE 10514/udp 12 | 13 | VOLUME [ "/var/log", "/etc/rsyslog.d" ] 14 | 15 | COPY ./etc/rsyslog.conf /etc/rsyslog.conf 16 | COPY ./etc/logrotate.conf /etc/logrotate.conf 17 | 18 | RUN chmod 644 /etc/logrotate.conf 19 | RUN chmod 644 /etc/rsyslog.conf 20 | 21 | COPY ./rsyslog.d/* /etc/rsyslog.d/ 22 | 23 | COPY run-logrotate /run-logrotate 24 | COPY entrypoint.sh /entrypoint.sh 25 | 26 | RUN chmod 755 /run-logrotate 27 | RUN chmod 755 /entrypoint.sh 28 | 29 | ENTRYPOINT [ "/entrypoint.sh" ] 30 | #Only for debug ENTRYPOINT [ "sh" ] 31 | -------------------------------------------------------------------------------- /rsyslog-docker/8.18/README.md: -------------------------------------------------------------------------------- 1 | ## Rsyslog Server Dockerfile 2 | 3 | This repository contains **Dockerfile** of [Rsyslog](http://www.rsyslog.com) server for [Docker](https://www.docker.com/)'s [build](https://registry.hub.docker.com/u/webratio/rsyslog-docker/) published to the public [Docker Hub](https://hub.docker.com/). 4 | 5 | ### Installation 6 | 7 | 1. Install [Docker](https://www.docker.com/). 8 | 9 | 2. Pull the image 10 | * `docker pull webratio/rsyslog-docker:8.18` 11 | -------------------------------------------------------------------------------- /rsyslog-docker/8.18/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.0' 2 | services: 3 | rsyslog: 4 | image: webratio/rsyslog-docker:8.18 5 | container_name: rsyslogd 6 | volumes: 7 | - /var/log/docker:/var/log/ 8 | ports: 9 | - "10514:10514/udp" 10 | restart: always 11 | -------------------------------------------------------------------------------- /rsyslog-docker/8.18/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo "Copy run-logrotate in 15 m periodic cron" 4 | cp -f /run-logrotate /etc/periodic/15min/run-logrotate 5 | 6 | echo "Start crond" 7 | #start cron 8 | crond -b -d 2 9 | 10 | echo "Start rsyslogd" 11 | #start rsyslogd 12 | rsyslogd -n -------------------------------------------------------------------------------- /rsyslog-docker/8.18/etc/logrotate.conf: -------------------------------------------------------------------------------- 1 | # apk packages drop log rotation information into this directory 2 | include /etc/logrotate.d 3 | 4 | 5 | /var/log/remote/docker/test2/*/*/*.log { 6 | # don't use time based rotation, but size-based 7 | size 1M 8 | # don't move, but copy-and-truncate so the application won't have to be 9 | # told that the file has moved. 10 | copytruncate 11 | # maximum of one old file 12 | rotate 30 13 | # counting old files starts at 1 rather than 0 14 | start 1 15 | # don't use compression 16 | nocompress 17 | # use date as a suffix of the rotated file 18 | #dateext 19 | } 20 | 21 | /var/log/remote/docker/test/*/*/*.log { 22 | # don't use time based rotation, but size-based 23 | size 1M 24 | # don't move, but copy-and-truncate so the application won't have to be 25 | # told that the file has moved. 26 | copytruncate 27 | # maximum of one old file 28 | rotate 30 29 | # counting old files starts at 1 rather than 0 30 | start 1 31 | # don't use compression 32 | nocompress 33 | # use date as a suffix of the rotated file 34 | #dateext 35 | } 36 | 37 | /var/log/remote/docker/sandbox/*/*/*.log { 38 | # don't use time based rotation, but size-based 39 | size 10M 40 | # don't move, but copy-and-truncate so the application won't have to be 41 | # told that the file has moved. 42 | copytruncate 43 | # maximum of one old file 44 | rotate 30 45 | # counting old files starts at 1 rather than 0 46 | start 1 47 | # don't use compression 48 | nocompress 49 | # use date as a suffix of the rotated file 50 | #dateext 51 | } 52 | 53 | /var/log/remote/docker/prod/*/*/*.log { 54 | # don't use time based rotation, but size-based 55 | size 10M 56 | # don't move, but copy-and-truncate so the application won't have to be 57 | # told that the file has moved. 58 | copytruncate 59 | # maximum of one old file 60 | rotate 30 61 | # counting old files starts at 1 rather than 0 62 | start 1 63 | # don't use compression 64 | nocompress 65 | # use date as a suffix of the rotated file 66 | #dateext 67 | } 68 | -------------------------------------------------------------------------------- /rsyslog-docker/8.18/etc/rsyslog.conf: -------------------------------------------------------------------------------- 1 | #### TLS #### 2 | 3 | # make gtls driver the default 4 | #$DefaultNetstreamDriver gtls 5 | 6 | # certificate files 7 | $DefaultNetstreamDriverCAFile /etc/certs-tls/ca.pem 8 | $DefaultNetstreamDriverCertFile /etc/certs-tls/octopus01.crt.pem 9 | $DefaultNetstreamDriverKeyFile /etc/certs-tls/octopus01.key.pem 10 | 11 | #$ActionSendStreamDriverMode 1 # run driver in TLS-only mode 12 | 13 | #### MODULES #### 14 | 15 | module(load="imudp") # UDP listener support 16 | 17 | input(type="imudp" port="10514" ruleset="remote") 18 | 19 | # Include all .conf files in /etc/rsyslog.d 20 | $IncludeConfig /etc/rsyslog.d/*.conf -------------------------------------------------------------------------------- /rsyslog-docker/8.18/rsyslog.d/docker-logs.conf: -------------------------------------------------------------------------------- 1 | #Template to build log path and log file name for test environemnt 2 | template(name="PerHostDockerTest2LogFileName" type="list") { 3 | constant(value="/var/log/remote/docker/test2/") 4 | property(name="timegenerated" dateFormat="year") 5 | constant(value="-") 6 | property(name="timegenerated" dateFormat="month") 7 | constant(value="-") 8 | property(name="timegenerated" dateFormat="day") 9 | constant(value="/") 10 | property(name="syslogtag" securepath="replace" \ 11 | regex.expression="test2/\\(.*\\)/\\(.*\\)\\[" regex.submatch="1") 12 | constant(value="/") 13 | property(name="syslogtag" securepath="replace" \ 14 | regex.expression="test2/\\(.*\\)/\\(.*\\)\\[" regex.submatch="2") 15 | constant(value=".log") 16 | } 17 | 18 | 19 | #Template to build log path and log file name for test environemnt 20 | template(name="PerHostDockerTestLogFileName" type="list") { 21 | constant(value="/var/log/remote/docker/test/") 22 | property(name="timegenerated" dateFormat="year") 23 | constant(value="-") 24 | property(name="timegenerated" dateFormat="month") 25 | constant(value="-") 26 | property(name="timegenerated" dateFormat="day") 27 | constant(value="/") 28 | property(name="syslogtag" securepath="replace" \ 29 | regex.expression="test/\\(.*\\)/\\(.*\\)\\[" regex.submatch="1") 30 | constant(value="/") 31 | property(name="syslogtag" securepath="replace" \ 32 | regex.expression="test/\\(.*\\)/\\(.*\\)\\[" regex.submatch="2") 33 | constant(value=".log") 34 | } 35 | 36 | #Template to build log path and log file name for sandbox environemnt 37 | template(name="PerHostDockerSandboxLogFileName" type="list") { 38 | constant(value="/var/log/remote/docker/sandbox/") 39 | property(name="timegenerated" dateFormat="year") 40 | constant(value="-") 41 | property(name="timegenerated" dateFormat="month") 42 | constant(value="-") 43 | property(name="timegenerated" dateFormat="day") 44 | constant(value="/") 45 | property(name="syslogtag" securepath="replace" \ 46 | regex.expression="sandbox/\\(.*\\)/\\(.*\\)\\[" regex.submatch="1") 47 | constant(value="/") 48 | property(name="syslogtag" securepath="replace" \ 49 | regex.expression="sandbox/\\(.*\\)/\\(.*\\)\\[" regex.submatch="2") 50 | constant(value=".log") 51 | } 52 | 53 | #Template to build log path and log file name for production environemnt 54 | template(name="PerHostDockerProdLogFileName" type="list") { 55 | constant(value="/var/log/remote/docker/prod/") 56 | property(name="timegenerated" dateFormat="year") 57 | constant(value="-") 58 | property(name="timegenerated" dateFormat="month") 59 | constant(value="-") 60 | property(name="timegenerated" dateFormat="day") 61 | constant(value="/") 62 | property(name="syslogtag" securepath="replace" \ 63 | regex.expression="prod/\\(.*\\)/\\(.*\\)\\[" regex.submatch="1") 64 | constant(value="/") 65 | property(name="syslogtag" securepath="replace" \ 66 | regex.expression="prod/\\(.*\\)/\\(.*\\)\\[" regex.submatch="2") 67 | constant(value=".log") 68 | } 69 | 70 | 71 | 72 | # Template to output message format 73 | template(name="FileFormat" type="list") { 74 | property(name="syslogtag" securepath="replace" \ 75 | regex.expression="\\(.*\\)/\\(.*\\)/\\(.*\\)\\[" regex.submatch="3" position.from="1" position.to="32") 76 | constant(value=" ") 77 | property(name="hostname") 78 | constant(value=" ") 79 | property(name="msg" spifno1stsp="on" ) 80 | property(name="msg" droplastlf="on" ) 81 | constant(value="\n") 82 | } 83 | 84 | 85 | Ruleset(name="remote") { 86 | $FileCreateMode 0644 87 | $DirCreateMode 0755 88 | 89 | if $syslogtag contains 'test2/' then { 90 | action(type="omfile" dynaFileCacheSize="1024" dynaFile="PerHostDockerTest2LogFileName" template="FileFormat" 91 | flushOnTXEnd="off" asyncWriting="on" flushInterval="1" ioBufferSize="64k") 92 | } 93 | 94 | if $syslogtag contains 'test/' then { 95 | action(type="omfile" dynaFileCacheSize="1024" dynaFile="PerHostDockerTestLogFileName" template="FileFormat" 96 | flushOnTXEnd="off" asyncWriting="on" flushInterval="1" ioBufferSize="64k") 97 | } 98 | 99 | if $syslogtag contains 'sandbox/' then { 100 | action(type="omfile" dynaFileCacheSize="1024" dynaFile="PerHostDockerSandboxLogFileName" template="FileFormat" 101 | flushOnTXEnd="off" asyncWriting="on" flushInterval="1" ioBufferSize="64k") 102 | } 103 | 104 | if $syslogtag contains 'prod/' then { 105 | action(type="omfile" dynaFileCacheSize="1024" dynaFile="PerHostDockerProdLogFileName" template="FileFormat" 106 | flushOnTXEnd="off" asyncWriting="on" flushInterval="1" ioBufferSize="64k") 107 | } 108 | 109 | } 110 | 111 | 112 | -------------------------------------------------------------------------------- /rsyslog-docker/8.18/run-logrotate: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | logrotate /etc/logrotate.conf --------------------------------------------------------------------------------