summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUnknown <joe2010xtmf@163.com>2014-04-11 12:16:17 -0400
committerUnknown <joe2010xtmf@163.com>2014-04-11 12:16:17 -0400
commitb26df298651018f5787a545c765856aed1cf94e4 (patch)
tree13a53b99bccbc1e4096b1639cad504d956c8bb03
parent23e318f85a912d84c5621eb0a8e09465bf37a3cb (diff)
parent0650c3c9f609ba833c29fa120a34f15c0f064b54 (diff)
downloadgitea-b26df298651018f5787a545c765856aed1cf94e4.tar.gz
gitea-b26df298651018f5787a545c765856aed1cf94e4.zip
Merge branch 'master' of github.com:gogits/gogs into dev
-rw-r--r--dockerfiles/README.md57
-rwxr-xr-xdockerfiles/build.sh25
-rwxr-xr-xdockerfiles/build.sh.bak27
-rw-r--r--dockerfiles/images/gogits/Dockerfile33
-rw-r--r--dockerfiles/images/gogits/deploy.sh20
-rw-r--r--dockerfiles/images/memcached/.gitkeep0
-rw-r--r--dockerfiles/images/mysql/.gitkeep0
-rw-r--r--dockerfiles/images/mysql/Dockerfile37
-rw-r--r--dockerfiles/images/posgresql/.gitkeep0
-rw-r--r--dockerfiles/images/redis/.gitkeep0
-rwxr-xr-xdockerfiles/run.sh13
11 files changed, 212 insertions, 0 deletions
diff --git a/dockerfiles/README.md b/dockerfiles/README.md
new file mode 100644
index 0000000000..97c5aa0537
--- /dev/null
+++ b/dockerfiles/README.md
@@ -0,0 +1,57 @@
+### Gogs Install With Docker
+
+Deply gogs in [Docker](http://www.docker.io/) is just as easy as eating a pie, what you do is just open the `dockerfiles/build.sh` file, replace the confis:
+
+```
+MYSQL_PASSWORD="YOUR_MYSQL_PASSWORD"
+MYSQL_RUN_NAME="YOUR_MYSQL_RUN_NAME"
+HOST_PORT="YOUR_HOST_PORT"
+```
+
+And run:
+```
+cd dockerfiles
+./build.sh
+```
+
+The build might take some time, just be paient. After it finishes, you will receive the message:
+
+```
+Now we have the MySQL image(running) and gogs image, use the follow command to start gogs service( the content might be different, according to your own configs):
+ docker run -i -t --link gogs_mysql:db -p 3333:3000 gogs/gogits
+```
+
+Just follow the message, run:
+
+```
+ docker run -i -t --link gogs_mysql:db -p 3333:3000 gogs/gogits
+```
+
+Now we have gogs running! Open the browser and navigate to:
+
+```
+http://YOUR_HOST_IP:YOUR_HOST_PORT
+```
+
+Let's 'gogs'!
+
+#### Gogs With MySQL
+
+
+#### Gogs With PostgreSQL
+
+
+#### Gogs, MySQL With Redis
+
+
+#### Gogs, MySQL With Memcached
+
+
+#### Gogs, PostgreSQL With Redis
+
+
+#### Gogs, PostgreSQL With Memcached
+
+
+
+
diff --git a/dockerfiles/build.sh b/dockerfiles/build.sh
new file mode 100755
index 0000000000..1e7cf0ad0c
--- /dev/null
+++ b/dockerfiles/build.sh
@@ -0,0 +1,25 @@
+# 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
+
+# Build the MySQL image
+cd images/mysql
+docker build -t gogs/mysql .
+#
+## Build the gogits image
+cd ../gogits
+docker build -t gogs/gogits .
+#
+## Run MySQL image with name
+docker run -d --name $MYSQL_RUN_NAME gogs/mysql
+#
+## Run gogits image and link it to the MySQL image
+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"
+
diff --git a/dockerfiles/build.sh.bak b/dockerfiles/build.sh.bak
new file mode 100755
index 0000000000..545a13dae2
--- /dev/null
+++ b/dockerfiles/build.sh.bak
@@ -0,0 +1,27 @@
+# Configs
+MYSQL_PASSWORD="YOUR_MYSQL_PASSWORD"
+MYSQL_RUN_NAME="YOUR_MYSQL_RUN_NAME"
+typeset -u MYSQL_ALIAS
+MYSQL_ALIAS="YOUR_MYSQL_ALIAS"
+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/Dockerfile
+
+
+# Build the MySQL image
+cd images/mysql
+docker build -i gogs/mysql .
+
+# Build the gogits image
+cd images/gogits
+docker build -i gogs/gogits .
+
+# Run MySQL image with name
+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
+
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
diff --git a/dockerfiles/images/memcached/.gitkeep b/dockerfiles/images/memcached/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/dockerfiles/images/memcached/.gitkeep
diff --git a/dockerfiles/images/mysql/.gitkeep b/dockerfiles/images/mysql/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/dockerfiles/images/mysql/.gitkeep
diff --git a/dockerfiles/images/mysql/Dockerfile b/dockerfiles/images/mysql/Dockerfile
new file mode 100644
index 0000000000..9b163e32bf
--- /dev/null
+++ b/dockerfiles/images/mysql/Dockerfile
@@ -0,0 +1,37 @@
+#FROM stackbrew/ubuntu:13.10
+#FROM stackbrew/ubuntu
+FROM stackbrew/ubuntu:saucy
+MAINTAINER Meaglith Ma <genedna@gmail.com> (@genedna)
+
+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 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
+
+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/posgresql/.gitkeep b/dockerfiles/images/posgresql/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/dockerfiles/images/posgresql/.gitkeep
diff --git a/dockerfiles/images/redis/.gitkeep b/dockerfiles/images/redis/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/dockerfiles/images/redis/.gitkeep
diff --git a/dockerfiles/run.sh b/dockerfiles/run.sh
new file mode 100755
index 0000000000..7721ab41d4
--- /dev/null
+++ b/dockerfiles/run.sh
@@ -0,0 +1,13 @@
+# Configs
+MYSQL_PASSWORD="kuajie8402"
+MYSQL_RUN_NAME="gogs_mysql"
+typeset -u MYSQL_ALIAS
+MYSQL_ALIAS="db"
+HOST_PORT="3000"
+
+## Run MySQL image with name
+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
+