Add the scirpts for auto deploy.

This commit is contained in:
crystaldust 2014-04-10 19:56:19 +08:00
parent 4efb56af03
commit 5966dd78e6
7 changed files with 109 additions and 6 deletions

28
dockerfiles/build.sh Executable file
View File

@ -0,0 +1,28 @@
# Configs
MYSQL_PASSWORD="kuajie8402"
MYSQL_RUN_NAME="gogs_mysql"
typeset -u MYSQL_ALIAS
MYSQL_ALIAS="db"
HOST_PORT="3000"
# 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
docker build -t gogs/mysql .
#
## Build the gogits image
cd images/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
docker run --link $MYSQL_RUN_NAME:$MYSQL_ALIAS -p $HOST_PORT:3000 gogs/gogits

27
dockerfiles/build.sh.bak Executable file
View File

@ -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

View File

@ -19,6 +19,10 @@ RUN cd $GOPATH/src/github.com/gogits/gogs && go build
RUN apt-get autoremove -y
RUN apt-get clean all
EXPOSE 3000
# Add the deploy script to the docker image and assign execution permission to it.
ADD ./deploy.sh /
RUN chmod +x deploy.sh
CMD ["./$GOPATH/src/github.com/gogits/gogs/gogs"]
EXPOSE 3000
CMD [/deploy.sh]
CMD ["$GOPATH/src/github.com/gogits/gogs/gogs web"]

View File

@ -0,0 +1,15 @@
# deploy.sh in gogits image
# Script in the gogits image
## Replace the mysql password
MYSQL_PASSWORD=kuajie8402
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
## Replace the mysql address and port
# 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

View File

@ -1,12 +1,21 @@
FROM stackbrew/ubuntu:13.10
#FROM stackbrew/ubuntu:13.10
FROM stackbrew/ubuntu
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
#ENV MYSQL_PASSWORD docker
#RUN add-apt-repository -y "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe"
#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 --yes --force-yes update
RUN apt-get --yes --force-yes upgrade
ENV MYSQL_PASSWORD kuajie8402
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

View File

@ -0,0 +1,7 @@
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

13
dockerfiles/run.sh Executable file
View File

@ -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