summaryrefslogtreecommitdiffstats
path: root/dockerfiles/images/gogits
diff options
context:
space:
mode:
Diffstat (limited to 'dockerfiles/images/gogits')
-rw-r--r--dockerfiles/images/gogits/Dockerfile33
-rw-r--r--dockerfiles/images/gogits/deploy.sh20
2 files changed, 53 insertions, 0 deletions
diff --git a/dockerfiles/images/gogits/Dockerfile b/dockerfiles/images/gogits/Dockerfile
new file mode 100644
index 0000000000..410bb9cb0f
--- /dev/null
+++ b/dockerfiles/images/gogits/Dockerfile
@@ -0,0 +1,33 @@
+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
+ENV PATH /usr/local/go/bin:/go/bin:$PATH
+ENV GOROOT /usr/local/go
+ENV GOPATH /go
+
+RUN apt-get update && apt-get install --yes --force-yes curl git mercurial zip wget ca-certificates build-essential
+
+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
+
+# 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
+
+# Add the deploy script to the docker image and assign execution permission to it.
+ADD ./deploy.sh /
+RUN chmod +x deploy.sh
+
+EXPOSE 3000
+
+CMD /deploy.sh
diff --git a/dockerfiles/images/gogits/deploy.sh b/dockerfiles/images/gogits/deploy.sh
new file mode 100644
index 0000000000..4612a63da7
--- /dev/null
+++ b/dockerfiles/images/gogits/deploy.sh
@@ -0,0 +1,20 @@
+# deploy.sh in gogits image, replace the configs and run gogs
+
+## Replace the mysql password
+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 -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
+# 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