]> source.dussan.org Git - gitea.git/commitdiff
Add the auto build scripts for deplying gogs with Docker.
authorLance Ju <lance@crenolab.com>
Fri, 11 Apr 2014 06:55:43 +0000 (14:55 +0800)
committerLance Ju <lance@crenolab.com>
Fri, 11 Apr 2014 06:55:43 +0000 (14:55 +0800)
dockerfiles/build.sh
dockerfiles/images/gogits/Dockerfile
dockerfiles/images/gogits/deploy.sh
dockerfiles/images/mysql/Dockerfile
dockerfiles/images/test/Dockerfile [deleted file]

index 113f63dbea505c43e5096fe439f4f0cd1fb24254..57138577c95df8c854596b5cf4e5385ca32b7389 100755 (executable)
@@ -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"
 
index 265f86dad51ff8dd9035c10695154b7ddb8e04ae..410bb9cb0f39c92f389f2c3e3d9373d71572f68e 100644 (file)
@@ -1,6 +1,8 @@
 FROM stackbrew/ubuntu:13.10
 MAINTAINER  Meaglith Ma <genedna@gmail.com> (@genedna)
 
+ENV DEBIAN_FRONTEND noninteractive
+
 RUN echo "deb http://mirrors.aliyun.com/ubuntu/ saucy main restricted" > /etc/apt/sources.list && echo "deb http://mirrors.aliyun.com/ubuntu/ saucy-updates main restricted" >> /etc/apt/sources.list && echo "deb http://mirrors.aliyun.com/ubuntu/ saucy universe" >> /etc/apt/sources.list && echo "deb http://mirrors.aliyun.com/ubuntu/ saucy-updates universe" >> /etc/apt/sources.list && echo "deb http://mirrors.aliyun.com/ubuntu/ saucy multiverse" >> /etc/apt/sources.list && echo "deb http://mirrors.aliyun.com/ubuntu/ saucy-updates multiverse" >> /etc/apt/sources.list && echo "deb http://mirrors.aliyun.com/ubuntu/ saucy-backports main restricted universe multiverse" >> /etc/apt/sources.list && echo "deb http://mirrors.aliyun.com/ubuntu/ saucy-security main restricted" >> /etc/apt/sources.list && echo "deb http://mirrors.aliyun.com/ubuntu/ saucy-security universe" >> /etc/apt/sources.list && echo "deb http://mirrors.aliyun.com/ubuntu/ saucy-security multiverse" >> /etc/apt/sources.list
 
 RUN mkdir -p /go
@@ -13,9 +15,12 @@ RUN apt-get update && apt-get install --yes --force-yes curl git mercurial zip w
 RUN curl -s http://docker.u.qiniudn.com/go1.2.1.src.tar.gz | tar -v -C /usr/local -xz
 RUN cd /usr/local/go/src && ./make.bash --no-clean 2>&1
 
-RUN http_proxy=106.187.38.45:3128 go get -u github.com/gogits/gogs 
+# You may need a proxy, if github is very slow.
+#RUN http_proxy=106.187.38.45:3128 go get -u github.com/gogits/gogs 
+RUN go get -u github.com/gogits/gogs 
 RUN cd $GOPATH/src/github.com/gogits/gogs && go build
 
+# Clean all the unused packages
 RUN apt-get autoremove -y
 RUN apt-get clean all
 
@@ -24,5 +29,5 @@ ADD ./deploy.sh /
 RUN chmod +x deploy.sh
 
 EXPOSE 3000
-CMD [/deploy.sh]
-CMD ["$GOPATH/src/github.com/gogits/gogs/gogs web"]  
+
+CMD /deploy.sh
index f9c2144e2527aa66d1f63b01f7cdbf82a5d40e68..4612a63da741f09c247483274ee27e5cccc89a17 100644 (file)
@@ -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
index 7c0324015e4e97bccebaa478ae39f565fab5c3a1..9b163e32bf71a297f4c03e671db6251fd782f4b3 100644 (file)
@@ -1,18 +1,16 @@
 #FROM stackbrew/ubuntu:13.10
-FROM stackbrew/ubuntu
+#FROM stackbrew/ubuntu
+FROM   stackbrew/ubuntu:saucy
 MAINTAINER  Meaglith Ma <genedna@gmail.com> (@genedna)
 
-RUN apt-get install -y --force-yes software-properties-common
-
-RUN echo "deb http://mirrors.aliyun.com/ubuntu/ saucy main restricted" > /etc/apt/sources.list && echo "deb http://mirrors.aliyun.com/ubuntu/ saucy-updates main restricted" >> /etc/apt/sources.list && echo "deb http://mirrors.aliyun.com/ubuntu/ saucy universe" >> /etc/apt/sources.list && echo "deb http://mirrors.aliyun.com/ubuntu/ saucy-updates universe" >> /etc/apt/sources.list && echo "deb http://mirrors.aliyun.com/ubuntu/ saucy multiverse" >> /etc/apt/sources.list && echo "deb http://mirrors.aliyun.com/ubuntu/ saucy-updates multiverse" >> /etc/apt/sources.list && echo "deb http://mirrors.aliyun.com/ubuntu/ saucy-backports main restricted universe multiverse" >> /etc/apt/sources.list && echo "deb http://mirrors.aliyun.com/ubuntu/ saucy-security main restricted" >> /etc/apt/sources.list && echo "deb http://mirrors.aliyun.com/ubuntu/ saucy-security universe" >> /etc/apt/sources.list && echo "deb http://mirrors.aliyun.com/ubuntu/ saucy-security multiverse" >> /etc/apt/sources.list
-
-#RUN add-apt-repository -y "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe"
+ENV DEBIAN_FRONTEND noninteractive
 
+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 
 
-
-ENV MYSQL_PASSWORD kuajie8402
+ENV MYSQL_PASSWORD THE_MYSQL_PASSWORD
 
 RUN echo "mysql-server mysql-server/root_password password $MYSQL_PASSWORD" | debconf-set-selections  
 RUN echo "mysql-server mysql-server/root_password_again password $MYSQL_PASSWORD" | debconf-set-selections
@@ -20,9 +18,20 @@ RUN echo "mysql-server mysql-server/root_password_again password $MYSQL_PASSWORD
 RUN apt-get update && apt-get install -y --force-yes mysql-server 
 RUN sed -i -e"s/^bind-address\s*=\s*127.0.0.1/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
 
+RUN service mysql restart
+
+RUN echo "mysql -uroot -p$MYSQL_PASSWORD -e 'drop database if exists gogs;'" >> import.sh  
+RUN echo "mysql -uroot -p$MYSQL_PASSWORD -e 'create database gogs;'" >> import.sh  
+RUN chmod +x import.sh
+
 RUN apt-get autoremove -y
 RUN apt-get clean all
 
+RUN    /usr/sbin/mysqld & \
+    sleep 10s &&\
+    echo "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '$MYSQL_PASSWORD' WITH GRANT OPTION; FLUSH PRIVILEGES" | mysql -p$MYSQL_PASSWORD &&\
+    ./import.sh
+
 EXPOSE 3306
 
 CMD ["/usr/bin/mysqld_safe", "--skip-syslog", "--log-error=/dev/null"]  
diff --git a/dockerfiles/images/test/Dockerfile b/dockerfiles/images/test/Dockerfile
deleted file mode 100644 (file)
index b8ed66d..0000000
+++ /dev/null
@@ -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  
-