commit
0650c3c9f6
@ -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 |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -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" |
||||||
|
|
@ -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 |
||||||
|
|
@ -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 |
@ -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 |
@ -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"] |
@ -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 |
||||||
|
|
Loading…
Reference in new issue