Skip to content
This repository was archived by the owner on May 12, 2021. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docker/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
version: "3"
services:
pio:
image: predictionio/pio:latest
image: vking34/pio:latest
ports:
- 7070:7070
- 8000:8000
Expand Down
27 changes: 23 additions & 4 deletions docker/pio/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@

FROM openjdk:8

ARG PIO_GIT_URL=https://github.com/apache/predictionio.git
ARG PIO_TAG=v0.13.0
ARG PIO_GIT_URL=https://github.com/vking34/predictionio.git
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should stay as apache right?

ARG PIO_TAG=v0.14.0
ENV SCALA_VERSION=2.11.12
ENV SPARK_VERSION=2.2.3
ENV HADOOP_VERSION=2.7.7
Expand All @@ -34,6 +34,19 @@ RUN apt-get update && \

WORKDIR /opt/src
RUN git clone -b $PIO_TAG $PIO_GIT_URL

#
RUN mkdir -p /root/.sbt/launchers/0.13.15/ && \
mkdir /root/.sbt/launchers/0.13.13/ && \
mkdir /root/.sbt/launchers/1.2.3/ && \
mkdir /root/.sbt/launchers/1.2.8/

COPY ./sbt-0.13.15-bin/ /root/.sbt/launchers/0.13.15/
COPY ./sbt-0.13.13-bin/ /root/.sbt/launchers/0.13.13/
COPY ./sbt-1.2.3-bin/ /root/.sbt/launchers/1.2.3/
COPY ./sbt-1.2.8-bin/ /root/.sbt/launchers/1.2.8/
#

WORKDIR /opt/src/predictionio
RUN bash ./make-distribution.sh \
-Dscala.version=$SCALA_VERSION \
Expand All @@ -49,14 +62,20 @@ RUN bash ./make-distribution.sh \

RUN cp /etc/predictionio/pio-env.sh /etc/predictionio/pio-env.sh.orig && \
echo "#!/usr/bin/env bash" > /etc/predictionio/pio-env.sh
# RUN curl -o $PIO_HOME/lib/postgresql-$PGSQL_VERSION.jar \
# http://central.maven.org/maven2/org/postgresql/postgresql/$PGSQL_VERSION/postgresql-$PGSQL_VERSION.jar && \
# echo "POSTGRES_JDBC_DRIVER=$PIO_HOME/lib/postgresql-$PGSQL_VERSION.jar" >> /etc/predictionio/pio-env.sh && \
# echo "MYSQL_JDBC_DRIVER=$PIO_HOME/lib/mysql-connector-java-$MYSQL_VERSION.jar" >> /etc/predictionio/pio-env.sh

RUN curl -o $PIO_HOME/lib/postgresql-$PGSQL_VERSION.jar \
http://central.maven.org/maven2/org/postgresql/postgresql/$PGSQL_VERSION/postgresql-$PGSQL_VERSION.jar && \
https://repo1.maven.org/maven2/org/postgresql/postgresql/$PGSQL_VERSION/postgresql-$PGSQL_VERSION.jar && \
echo "POSTGRES_JDBC_DRIVER=$PIO_HOME/lib/postgresql-$PGSQL_VERSION.jar" >> /etc/predictionio/pio-env.sh && \
echo "MYSQL_JDBC_DRIVER=$PIO_HOME/lib/mysql-connector-java-$MYSQL_VERSION.jar" >> /etc/predictionio/pio-env.sh


WORKDIR /usr/share
RUN curl -o /opt/src/spark-$SPARK_VERSION.tgz \
http://www-us.apache.org/dist/spark/spark-$SPARK_VERSION/spark-$SPARK_VERSION-bin-hadoop2.7.tgz && \
http://archive.apache.org/dist/spark/spark-$SPARK_VERSION/spark-$SPARK_VERSION-bin-hadoop2.7.tgz && \
tar zxvf /opt/src/spark-$SPARK_VERSION.tgz && \
echo "SPARK_HOME="`pwd`/`ls -d spark*` >> /etc/predictionio/pio-env.sh && \
rm -rf /opt/src
Expand Down
2 changes: 1 addition & 1 deletion docker/pio/pio_run
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,6 @@ if [ x"$PIO_RUN_FILE" != "x" ] ; then
sh $PIO_RUN_FILE
else
# Start PIO Event Server
$PIO_HOME/bin/pio eventserver
$PIO_HOME/bin/pio eventserver -Xmx
fi

Binary file added docker/pio/sbt-0.13.13-bin/sbt-launch.jar
Binary file not shown.
Binary file added docker/pio/sbt-0.13.15-bin/java9-rt-export.jar
Binary file not shown.
153 changes: 153 additions & 0 deletions docker/pio/sbt-0.13.15-bin/sbt
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
#!/usr/bin/env bash


### ------------------------------- ###
### Helper methods for BASH scripts ###
### ------------------------------- ###

realpath () {
(
TARGET_FILE="$1"
FIX_CYGPATH="$2"

cd "$(dirname "$TARGET_FILE")"
TARGET_FILE=$(basename "$TARGET_FILE")

COUNT=0
while [ -L "$TARGET_FILE" -a $COUNT -lt 100 ]
do
TARGET_FILE=$(readlink "$TARGET_FILE")
cd "$(dirname "$TARGET_FILE")"
TARGET_FILE=$(basename "$TARGET_FILE")
COUNT=$(($COUNT + 1))
done

# make sure we grab the actual windows path, instead of cygwin's path.
if [[ "x$FIX_CYGPATH" != "x" ]]; then
echo "$(cygwinpath "$(pwd -P)/$TARGET_FILE")"
else
echo "$(pwd -P)/$TARGET_FILE"
fi
)
}


# Uses uname to detect if we're in the odd cygwin environment.
is_cygwin() {
local os=$(uname -s)
case "$os" in
CYGWIN*) return 0 ;;
MINGW*) return 0 ;;
MSYS*) return 0 ;;
*) return 1 ;;
esac
}

# TODO - Use nicer bash-isms here.
CYGWIN_FLAG=$(if is_cygwin; then echo true; else echo false; fi)


# This can fix cygwin style /cygdrive paths so we get the
# windows style paths.
cygwinpath() {
local file="$1"
if [[ "$CYGWIN_FLAG" == "true" ]]; then
echo $(cygpath -w $file)
else
echo $file
fi
}

. "$(dirname "$(realpath "$0")")/sbt-launch-lib.bash"


declare -r noshare_opts="-Dsbt.global.base=project/.sbtboot -Dsbt.boot.directory=project/.boot -Dsbt.ivy.home=project/.ivy"
declare -r sbt_opts_file=".sbtopts"
declare -r etc_sbt_opts_file="${sbt_home}/conf/sbtopts"
declare -r win_sbt_opts_file="${sbt_home}/conf/sbtconfig.txt"

usage() {
cat <<EOM
Usage: $script_name [options]

-h | -help print this message
-v | -verbose this runner is chattier
-d | -debug set sbt log level to debug
-no-colors disable ANSI color codes
-sbt-create start sbt even if current directory contains no sbt project
-sbt-dir <path> path to global settings/plugins directory (default: ~/.sbt)
-sbt-boot <path> path to shared boot directory (default: ~/.sbt/boot in 0.11 series)
-ivy <path> path to local Ivy repository (default: ~/.ivy2)
-mem <integer> set memory options (default: $sbt_mem, which is $(get_mem_opts $sbt_mem))
-no-share use all local caches; no sharing
-no-global uses global caches, but does not use global ~/.sbt directory.
-jvm-debug <port> Turn on JVM debugging, open at the given port.
-batch Disable interactive mode

# sbt version (default: from project/build.properties if present, else latest release)
-sbt-version <version> use the specified version of sbt
-sbt-jar <path> use the specified jar as the sbt launcher
-sbt-rc use an RC version of sbt
-sbt-snapshot use a snapshot version of sbt

# java version (default: java from PATH, currently $(java -version 2>&1 | grep version))
-java-home <path> alternate JAVA_HOME

# jvm options and output control
JAVA_OPTS environment variable, if unset uses "$java_opts"
.jvmopts if this file exists in the current directory, its contents
are appended to JAVA_OPTS
SBT_OPTS environment variable, if unset uses "$default_sbt_opts"
.sbtopts if this file exists in the current directory, its contents
are prepended to the runner args
/etc/sbt/sbtopts if this file exists, it is prepended to the runner args
-Dkey=val pass -Dkey=val directly to the java runtime
-J-X pass option -X directly to the java runtime
(-J is stripped)
-S-X add -X to sbt's scalacOptions (-S is stripped)

In the case of duplicated or conflicting options, the order above
shows precedence: JAVA_OPTS lowest, command line options highest.
EOM
}



process_my_args () {
while [[ $# -gt 0 ]]; do
case "$1" in
-no-colors) addJava "-Dsbt.log.noformat=true" && shift ;;
-no-share) addJava "$noshare_opts" && shift ;;
-no-global) addJava "-Dsbt.global.base=$(pwd)/project/.sbtboot" && shift ;;
-sbt-boot) require_arg path "$1" "$2" && addJava "-Dsbt.boot.directory=$2" && shift 2 ;;
-sbt-dir) require_arg path "$1" "$2" && addJava "-Dsbt.global.base=$2" && shift 2 ;;
-debug-inc) addJava "-Dxsbt.inc.debug=true" && shift ;;
-batch) exec </dev/null && shift ;;

-sbt-create) sbt_create=true && shift ;;

*) addResidual "$1" && shift ;;
esac
done

# Now, ensure sbt version is used.
[[ "${sbt_version}XXX" != "XXX" ]] && addJava "-Dsbt.version=$sbt_version"
}

loadConfigFile() {
cat "$1" | sed '/^\#/d' | while read line; do
eval echo $line
done
}

# Here we pull in the global settings configuration.
[[ -f "$etc_sbt_opts_file" ]] && set -- $(loadConfigFile "$etc_sbt_opts_file") "$@"

# Pull in the project-level config file, if it exists.
[[ -f "$sbt_opts_file" ]] && set -- $(loadConfigFile "$sbt_opts_file") "$@"

# Pull in the project-level java config, if it exists.
[[ -f ".jvmopts" ]] && export JAVA_OPTS="$JAVA_OPTS $(loadConfigFile .jvmopts)"

run "$@"

Loading