Skip to content

docker tale的一些修改 #3

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 29 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 5 additions & 8 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
FROM docker.io/openjdk:8u121-jdk

ENV TALE_HOME /var/tale_home
ENV TALE_SLAVE_AGENT_PORT 9000
WORKDIR /webapp/

EXPOSE 9000
#COPY tale.sh /webapp/
#ENTRYPOINT ["/usr/bin/java", "-jar", "/webapp/tale/tale-least.jar"]
ENTRYPOINT ["sh","./tale/tale.sh"]
CMD ["start"]

#CMD ["/usr/bin/java", "-jar", "/var/tale_home/tale-1.2.11.jar"]

#copy run.sh to /run.sh
COPY run.sh /run.sh
RUN chmod 700 /run.sh
ENTRYPOINT ["/run.sh"]
52 changes: 42 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,56 @@
tale docker

# 使用说明
下载到本地,使用`docker build -t tale:1.0 . ` 命令构建tale镜像

将tale*.jar,lib目录和resources目录放在宿主机的/home/tale目录下,之后使用下面的命令启动tale的docker容器
把Dockerfile下载到本地,使用`docker build -t tale:1.0 . ` 命令构建tale镜像

<p>点击 <a href="http://static.biezhi.me/tale-least.zip?1231" rel="nofollow">下载</a> 最新版的Tale程序,该程序是一个zip包,解压后的目录结构如下。</p>

```
tale
├── lib
├── resources
└── tale-least.jar
```

修改tale/resource/app.properties文件com.blade.logger.logFile=./tale/logs/tale.log
将run.sh放到tale目录下,目录如下,

```
tale
├── lib
├── resources
├── tale-least.jar
└── tale.sh```

# 如果觉得配置麻烦,提供一键包dockerTale.zip欢迎使用
将tale目录放在宿主机的/home目录下,之后使用下面的命令启动tale的docker容器

``` bash
docker run -d --privileged --hostname tale --name tale
-v /etc/localtime:/etc/localtime:ro
-v /home/tale:/var/tale_home -p 127.0.0.1:80:9000
-v /home/tale:/webapp/tale -p 127.0.0.1:80:9000
-m 1024m --memory-swap -1 tale:1.0
```

命令说明:
- run -d #后台运行
- v /etc/localtime:/etc/localtime:ro #容器使用宿主机的时间
- v /home/tale:/var/tale_home #宿主机的/home/tale与容器的/var/tale_home关联,可自行修改***/home/tale***
- p 127.0.0.1:80:9000 #宿主机的80端口指向容器的9000端口

命令说明:<br>
- run -d #后台运行<br>
- v /etc/localtime:/etc/localtime:ro #容器使用宿主机的时间<br>
- v /home/tale:/var/tale_home #宿主机的/home/tale与容器的/var/tale_home关联,可自行修改***/home/tale*** <br>
- p 127.0.0.1:80:9000 #宿主机的80端口指向容器的9000端口 <br>
-m 1024m --memory-swap -1 #指定限制内存大小并且设置memory-swap值为-1,表示容器程序使用内存受限,而交换空间使用不受限制(宿主 交换支持使用多少则容器即可使用多少。如果--memory-swap设置小于--memory则设置不生效,使用默认设置)



浏览器访问`127.0.0.1`即可

一些使用说明<br>
docker exec -it 容器id bash ./tale/tale.sh log 查看容器内应用日志同 docker logs -f 容器id,当然你在宿主机tale log目录 tali -f 也可以看到<br>
docker exec -it 容器id bash ./tale/tale.sh status 容器tale状态<br>
docker exec -it 容器id bash ./tale/tale.sh reload 重启容器内应用<br>
docker exec -it 容器id bash ./tale/tale.sh stop 关掉容器内tale应用<br>
docker exec -it 容器id bash ./tale/tale.sh start 开启容器内tale应用<br>

# 添加docker-compose文件
我这里有了docker-compse就不需要dockerfile了 : )

docker-compose_v2.yaml 是配合Dockerfile使用
16 changes: 16 additions & 0 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
version: '3.2'


services:
web:
build: .
tty: true
working_dir: /webapp/
ports:
- '9000:9000'

volumes:
- /etc/localtime:/etc/localtime:ro
- /usr/local/webapp/dockerTale/tale:/webapp/tale

command: ./tale/tale.sh start
16 changes: 16 additions & 0 deletions docker-compose_v2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
version: '3.2'


services:
web:
build: .
#tty: true
working_dir: /webapp/
ports:
- '9000:9000'

volumes:
- /etc/localtime:/etc/localtime:ro
- /usr/local/webapp/dockerTale/tale:/webapp/tale

command: ./tale/tale.sh start
Binary file added dockerTale.zip
Binary file not shown.
10 changes: 0 additions & 10 deletions run.sh

This file was deleted.

96 changes: 96 additions & 0 deletions tale.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
#!/bin/bash
# author:datayang
#url:https://github.com/datayang/tale-docker/edit/master/tale.sh
#reference:https://github.com/otale/scripts


# Usage: sh tale.sh start "-Xms128m -Xmx128m"
# Usage: sh tale.sh stop
# Usage: sh tale.sh status
# Usage: sh tale.sh reload 10
# Usage: sh tale.sh log

env_args="-Xms128m -Xmx128m"
sleeptime=0
arglen=$#

# get tale pid
get_pid(){
pname="`find .. -name 'tale*.jar'`"
pname=${pname:3}
pid=`ps -ef | grep $pname | grep -v grep | awk '{print $2}'`
echo "$pid"
}

startup(){
pid=$(get_pid)
if [ "$pid" != "" ]
then
echo "Tale already startup!"
else
jar_path=`find .. -name 'tale*.jar'`
echo "jarfile=$jar_path"
cmd="java $1 -Djava.security.egd=file:/dev/./urandom -jar $jar_path > ./tale/tale.out < /dev/null &"
echo "cmd: $cmd"
java $1 -Djava.security.egd=file:/dev/./urandom -jar $jar_path > ./tale/tale.out < /dev/null &
show_log
fi
}

shut_down(){
pid=$(get_pid)
if [ "$pid" != "" ]
then
kill -9 $pid
echo "Tale is stop!"
else
echo "Tale already stop!"
fi
}

show_log(){
tail -f ./tale/tale.out
}

show_help(){
echo -e "\r\n\t欢迎使用Tale Blog"
echo -e "\r\nUsage: sh tale.sh start|stop|reload|status|log"
exit
}

show_status(){
pid=$(get_pid)
if [ "$pid" != "" ]
then
echo "Tale is running with pid: $pid"
else
echo "Tale is stop!"
fi
}

if [ $arglen -eq 0 ]
then
show_help
else
if [ "$2" != "" ]
then
env_args="$2"
fi
case "$1" in
"start")
startup "$env_args"
;;
"stop")
shut_down
;;
"reload")
echo "reload"
;;
"status")
show_status
;;
"log")
show_log
;;
esac
fi