Heroku рдкрд░ Ratpack рдРрдк рддреИрдирд╛рдд рдХрд░реЗрдВ

рд╣рд░реЛрдХреВ рдкрд░ рдПрдХ рд╕рд░рд▓ рд░реИрдЯрдкреИрдХ рдРрдк рдХреЛ рддреИрдирд╛рдд рдХрд░рдирд╛ рдЙрд╕рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ рдЬрд┐рддрдирд╛ рдЗрд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдмрд╣реБрдд рдкрд░реАрдХреНрд╖рдг рдФрд░ рддреНрд░реБрдЯрд┐ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЖрдЦрд┐рд░рдХрд╛рд░ рдПрдХ рд╕рдлрд▓ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред рдпрд╣ рдЖрд▓реЗрдЦ рдЪрд░рдгрдмрджреНрдз рддрд░реАрдХреЗ рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдПрдХ рдореИрдиреБрдЕрд▓ рд╣реИред рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреНрд░реЗрдбрд▓ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВред



рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ


рдПрдХ рд╕рдлрд▓ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЗрд░реЛрдХреВ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХреБрдЫ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЖрдкрдХреЗ рдЧрд┐рдЯ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рд╢рд╛рдЦрд╛ рдореЗрдВ рд░рдЦрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рд░реЛрдХреВ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдЧрд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлрд╝реЛрд▓реНрдбрд░ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

рдмрд┐рди

тФЬтФАтФА рд╕рдВрдХрд▓рди рдХрд░реЗрдВ

тФФтФАтФА рдкрддрд╛ рд▓рдЧрд╛рдирд╛

рдФрд░ рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА рд╡рд╛рд▓реА рдлрд╛рдЗрд▓реЗрдВ:

рдмрд┐рди / рдкрддрд╛ рд▓рдЧрд╛рдирд╛

#!/usr/bin/env bash # bin/use <build-dir> if [ -f $1/src/ratpack/ratpack.groovy ]; then echo "Ratpack" && exit 0 else echo "no" && exit 1 fi
      
      





рдмрд┐рди / рд╕рдВрдХрд▓рди

 #!/usr/bin/env bash # bin/compile <build-dir> <cache-dir> # fail fast set -e BIN_DIR=$(cd $(dirname $0); pwd) # absolute path # parse args BUILD_DIR=$1 CACHE_DIR=$2 #env variables JAVA_DIST="openjdk1.7.0_21" JDK7_URL="https://s3.amazonaws.com/heroku-jdk/${JAVA_DIST}.tar.gz" #create the cache dir if it doesn't exist mkdir -p $CACHE_DIR cd "$BUILD_DIR" #jdk7 if [ -d .jdk7 ]; then echo "-----> .jdk7 folder found, moving along." else echo -n "-----> .jdk7 folder not found! " if [[ -d "$CACHE_DIR/.jdk7" ]]; then echo -n "Copying jdk from cache to app... " cp -r "$CACHE_DIR/.jdk7" "$BUILD_DIR" echo "Done!" else echo -n "-----> Installing ${JAVA_DIST} build (to .jdk7)....." mkdir "$BUILD_DIR/.jdk7" cd "$BUILD_DIR/.jdk7" curl --max-time 180 --location "$JDK7_URL" | tar xz cd "$BUILD_DIR" echo "Done!" fi fi cd $BUILD_DIR export JAVA_HOME="$BUILD_DIR/.jdk7" export PATH="$JAVA_HOME/bin:$PATH" echo "" echo "-----> Building project with Gradle wrapper:" echo " ./gradlew clean installApp" export GRADLE_OPTS="-Dfile.encoding=UTF-8 -server -Xmx512m -XX:+UseCompressedOops" export GRADLE_USER_HOME="$CACHE_DIR/.gradle" ./gradlew clean installApp rm -rf "$CACHE_DIR/.jdk7" cp -r .jdk7 "$CACHE_DIR/.jdk7"
      
      







рдЕрдЧрд▓рд╛, рд╣рдореЗрдВ рдПрдХ рдкреНрд░реЙрд╕реАрдлрд╛рдЗрд▓ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рд╣рдо рдЗрд╕реЗ рдЕрдкрдиреЗ рд░реИрдЯрдкреИрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗред

Procfile

 --- addons: config_vars: JAVA_OPTS: -Dfile.encoding=UTF-8 -server -Xmx512m -XX:+UseCompressedOops default_process_types: web: build/install/ratpack/bin/ratpack
      
      







рдмрд┐рд▓реНрдб / рдЗрдВрд╕реНрдЯреЙрд▓ / рдЪреВрд╣рд╛ / рдмрд┐рди / рдЪреВрд╣рд╛ рдлрд╝рд╛рдЗрд▓ , рд╕рд╛рде рд╣реА рд╕рд╛рде рд╡реЗрдм рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд / рд╕реНрдерд╛рдкрд┐рдд / рдЪреВрд╣рд╛ рдлрд╝реЛрд▓реНрдбрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдФрд░ рдлрд╝реЛрд▓реНрдбрд░ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдирд╛рдо рдкрд░ рд╣реЛрдЧрд╛ред рд╣реЗрд░реЛрдХреВ рдореЗрдВ рддреИрдирд╛рддреА рдкрд░ рдЗрд╕ рдореВрд▓реНрдп рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛ рд╕рдВрднрд╡ (рдФрд░ рдЖрд╡рд╢реНрдпрдХ) рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд░реВрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо рдЬреЗрдирд░реЗрдЯ рд╣реИрд╢ рд╕реЗ рдЖрддрд╛ рд╣реИред рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдореВрд▓ рдирд╛рдо рдХреЛ рдХреБрдЫ рдЬреНрдЮрд╛рдд (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЪреВрд╣рд╛) рдореЗрдВ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдЯ рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:



settings.gradle

rootProject.name = 'рдЪреВрд╣рд╛'

рдЕрдм рд╣рдореЗрдВ RATPACK_OPTS рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЛ рддреИрдирд╛рддреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рд╣рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП $ PORT рдЪрд░ рдХреА рдУрд░ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдмрд╛рдЙрд▓ рдореЗрдВ рдкреНрд░реЛрдлрд╛рдЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЫрд┐рдкреА рд▓рд┐рдкрд┐ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред



.profile.d / setenv.sh



 #!/bin/bash echo "Setting environment varialbes..." export RATPACK_OPTS="-Dratpack.port=$PORT" export JAVA_HOME="${BUILD_DIR}/.jdk7"
      
      







рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлрд╝реЛрд▓реНрдбрд░ рд╕рдВрд░рдЪрдирд╛ рд╣реИ:

тФЬтФАтФА рдмрд┐рди

Ile ile рд╕рдВрдХрд▓рди

тФФтФАтФА тФФтФАтФА рдкрддрд╛ рд▓рдЧрд╛рдирд╛

Ile Procfile

тФЬтФАтФА .profile.d

En en setenv.sh

Le settings.gradle



рддреИрдирд╛рддреА рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛


рдЕрдм рд╣рдореЗрдВ рдмрд┐рд▓реНрдбрдХреЙрдХ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд░реЛрдХреВ рдкрд░ рдЕрдкрдирд╛ рдирдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рд╕рд░рд▓ рдХрдорд╛рдВрдб рдЙрди рд╕рднреА рдХрдорд╛рдВрдбреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╣рдордиреЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдмрдирд╛рдИ рд╣реИрдВред рдЯреАрдо рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рднреА рдХрд░рддреА рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд╣реЗрд░реЛрдХреВ рдкрд░ Ubuntu 10.04 рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рджреЗрд╡рджрд╛рд░ рд╕реНрдЯреИрдХред

heroku рдРрдкреНрд╕: myapplication --buildpack github.com/kr/heroku-buildpack-inline.git рдмрдирд╛рдПрдБ



рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдЕрдкрдиреА рдирдИ рд╢рд╛рдЦрд╛ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рд╣реИ рдФрд░ рд╡рд╣рд╛рдВ рд╣рдорд╛рд░реА рд╕рднреА рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдБ рд╣реИрдВред



 git checkout -b deploy git add bin Procfile settings.gradle .profile.d git commit -m 'Heroku deployment artifacts.' git push heroku deploy:master
      
      







рдЕрдм рд╣рдореЗрдВ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рддреИрдирд╛рдд рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:

-----> рдХрд╕реНрдЯрдо git рдмрд┐рд▓реНрдбрдкреИрдХ рд▓рд╛рдирд╛ ... рдХрд┐рдпрд╛

-----> рд░реИрдЯрдкреИрдХ рдРрдк рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛

-----> .jdk7 рдлрд╝реЛрд▓реНрдбрд░ рдирд╣реАрдВ рдорд┐рд▓рд╛! рдРрдк рд╕реЗ рдХреИрд╢ рд╕реЗ jdk рдХреЙрдкреА рдХрд░рдирд╛ ... рд╣реЛ рдЧрдпрд╛!



-----> рдЧреНрд░реЗрдбрд▓ рдЖрд╡рд░рдг рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рдкрд░рд┐рдпреЛрдЬрдирд╛:

./gradlew рдХреНрд▓реАрди рдЗрдВрд╕реНрдЯреЙрд▓рдРрдк рдХрд░реЗрдВ

<рд╕реНрдирд┐рдк />

-----> рдЦреЛрдЬ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдкреНрд░рдХрд╛рд░

Proffile рдкреНрд░рдХрд╛рд░ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддрд╛ рд╣реИ -> JAVA_HOME, JAVA_OPTS, рд╡реЗрдм



-----> рд╕рдВрдХрд▓рд┐рдд рд╕реНрд▓рдЧ рдЖрдХрд╛рд░: 64.8MB

-----> рд╢реБрднрд╛рд░рдВрдн ... рдХрд┐рдпрд╛, v38

myapplication.herokuapp.com рд╣рд░реЛрдХреВ рдореЗрдВ рддреИрдирд╛рдд рд╣реИ

рдФрд░ рд╣рдо рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЙрдЧ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

рд╣рд░реЛрдХреВ рд▓реЙрдЧреНрд╕ - рдмреЗрд▓реЗрдЯ - рдПрдирдо 100 - рдПрдк рдорд╛рдпрдкреНрд▓рд╛рдХреЗрд╢рди



рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЧреНрд░реИрдбрд▓ рдкреНрд▓рдЧ рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ, рдЬреЛ рдпрд╣рд╛рдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╣реИ ред рд╕реВрддреНрд░ рдпрд╣рд╛рдВ рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВ ред рдореВрд▓ рд▓реЗрдЦ рдпрд╣рд╛рдБ рд╣реИ ред рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред



All Articles