浏览代码

Add the auto build scripts for deplying gogs with Docker.

Lance Ju 11 年之前
父节点
当前提交
2315dc39b6

+ 6 - 9
dockerfiles/build.sh

@@ -1,16 +1,12 @@
-# Configs
-MYSQL_PASSWORD="kuajie8402"
-MYSQL_RUN_NAME="gogs_mysql"
-typeset -u MYSQL_ALIAS
-MYSQL_ALIAS="db"
-HOST_PORT="3000"
+# Configs of the docker images, you might have specify your own configs here.
+MYSQL_PASSWORD="YOUR_MYSQL_PASSWORD"
+MYSQL_RUN_NAME="YOUR_MYSQL_RUN_NAME"
+HOST_PORT="YOUR_HOST_PORT"
 
 # Replace the mysql root password in MySQL image Dockerfile.
 sed -i "s/THE_MYSQL_PASSWORD/$MYSQL_PASSWORD/g" images/mysql/Dockerfile
 # Replace the mysql root password in gogits image Dockerfile.
 sed -i "s/THE_MYSQL_PASSWORD/$MYSQL_PASSWORD/g" images/gogits/deploy.sh
-sed -i "s/THE_MYSQL_ALIAS/$MYSQL_ALIAS/g" images/gogits/deploy.sh
-
 
 # Build the MySQL image
 cd images/mysql
@@ -24,5 +20,6 @@ docker build -t gogs/gogits .
 docker run -d --name $MYSQL_RUN_NAME gogs/mysql
 #
 ## Run gogits image and link it to the MySQL image
-docker run --link $MYSQL_RUN_NAME:$MYSQL_ALIAS -p $HOST_PORT:3000 gogs/gogits
+echo "Now we have the MySQL image(running) and gogs image, use the follow command to start gogs service:'
+echo -e "\033[33m docker run -i -t --link $MYSQL_RUN_NAME:db -p $HOST_PORT:3000 gogs/gogits \033[0m"
 

文件差异内容过多而无法显示
+ 8 - 3
dockerfiles/images/gogits/Dockerfile


+ 10 - 5
dockerfiles/images/gogits/deploy.sh

@@ -1,15 +1,20 @@
-# deploy.sh in gogits image
-# Script in the gogits image
+# deploy.sh in gogits image, replace the configs and run gogs
+
 ## Replace the mysql password
-MYSQL_PASSWORD=kuajie8402
+MYSQL_PASSWORD=THE_MYSQL_PASSWORD
 MYSQL_ALIAS=DB
 MYSQL_PASSWORD_LINE=`awk '$0 ~ str{print NR+1}' str="USER = root" $GOPATH/src/github.com/gogits/gogs/conf/app.ini`
 
-sed -e "${MYSQL_PASSWORD_LINE}s/.*$/PASSWD = $MYSQL_PASSWORD/g" conf/app.ini 
+sed -i "${MYSQL_PASSWORD_LINE}s/.*$/PASSWD = $MYSQL_PASSWORD/g" $GOPATH/src/github.com/gogits/gogs/conf/app.ini 
 
 ## Replace the mysql address and port
+# When using --link in docker run, the mysql image's info looks like this:
 # DB_PORT=tcp://172.17.0.2:3306
 # DB_PORT_3306_TCP_PORT=3306
 # DB_PORT_3306_TCP_PROTO=tcp
-sed -e "/HOST = 127.0.0.1:3306/c\HOST = ${MYSQLALIAS}_PORT" app.ini
+# DB_PORT_3306_TCP_ADDR=172.17.0.2
+sed -i "/HOST = 127.0.0.1:3306/c\HOST = $DB_PORT_3306_TCP_ADDR:$DB_PORT_3306_TCP_PORT" $GOPATH/src/github.com/gogits/gogs/conf/app.ini
+cd $GOPATH/src/github.com/gogits/gogs/ 
 
+# The sudo is a must here, or the go within docker container won't get the current user by os.Getenv("USERNAME")
+sudo ./gogs web

文件差异内容过多而无法显示
+ 17 - 8
dockerfiles/images/mysql/Dockerfile


+ 0 - 7
dockerfiles/images/test/Dockerfile

@@ -1,7 +0,0 @@
-FROM   stackbrew/ubuntu:saucy
-
-RUN    apt-get install -y --force-yes software-properties-common  
-RUN    add-apt-repository -y "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe"  
-RUN    apt-get --yes --force-yes update  
-RUN    apt-get --yes --force-yes upgrade  
-