This repository has been archived by the owner on Mar 23, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
perf(dockerfile): 更新wps构建脚本,启动项脚本和执行脚本
- Loading branch information
Showing
6 changed files
with
340 additions
and
98 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,15 @@ | ||
#!/bin/bash | ||
|
||
USER_ID=${LOCAL_USER_ID:-9001} | ||
chown -R $USER_ID /app | ||
if [ "$(id -u)" -eq '0' ] | ||
then | ||
USER_ID=${LOCAL_USER_ID:-9001} | ||
|
||
chown -R ${USER_ID} /app | ||
usermod -u ${USER_ID} user | ||
usermod -a -G root user | ||
|
||
export HOME=/home/user | ||
exec gosu user "$0" "$@" | ||
fi | ||
|
||
# 修改usr用户ID | ||
usermod -u $USER_ID user | ||
usermod -a -G root user | ||
export HOME=/home/user | ||
|
||
# 切换到user用户再执行wps | ||
exec gosu user $@ | ||
exec "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,89 @@ | ||
#!/bin/bash | ||
|
||
xhost + > /dev/null | ||
|
||
START=$(docker ps -q --filter="name=et") | ||
STOP=$(docker ps -aq --filter="name=et") | ||
|
||
if [ -n "${START}" ] | ||
then | ||
docker exec -u user $START et > /dev/null | ||
elif [ -n "${STOP}" ] | ||
then | ||
docker restart ${STOP} > /dev/null | ||
else | ||
FINALNAME= | ||
BASENAME="/home/user/Documents" | ||
|
||
COMMAND="et" | ||
COMMAND_NAME="et" | ||
IMAGE_NAME="zjzstu/wps:latest" | ||
|
||
# 替换主机文件路径为容器路径 | ||
function parse_arg() | ||
{ | ||
FILE_DIR=$1 | ||
|
||
if [ ! -f ${FILE_DIR} ] | ||
then | ||
echo "file not existed!" | ||
exit 1 | ||
fi | ||
|
||
if [[ ${FILE_DIR} == ./* ]] | ||
then | ||
FINALNAME=${PWD}${FILE_DIR#.} | ||
elif [[ ${FILE_DIR} == ../* ]] | ||
then | ||
FINALNAME=`dirname ${PWD}`${FILE_DIR#..} | ||
elif [[ ${FILE_DIR} == ${HOME}* ]] | ||
then | ||
FINALNAME=${FILE_DIR} | ||
else | ||
FINALNAME=${PWD}/${FILE_DIR} | ||
fi | ||
|
||
FINALNAME=${BASENAME}${FINALNAME#${HOME}} | ||
} | ||
|
||
# 启动wps镜像 | ||
function startup() | ||
{ | ||
docker run -d \ | ||
-v /tmp/.X11-unix:/tmp/.X11-unix \ | ||
-e DISPLAY=unix$DISPLAY \ | ||
-e LOCAL_USER_ID=`id -u $USER` \ | ||
-e DISPLAY=unix${DISPLAY} \ | ||
-e LOCAL_USER_ID=`id -u ${USER}` \ | ||
-e XMODIFIERS="@im=fcitx" \ | ||
-e QT_IM_MODULE="fcitx" \ | ||
-e GTK_IM_MODULE="fcitx" \ | ||
-v $HOME/docs:/home/user/Documents \ | ||
--name et \ | ||
zjzstu/wps:latest \ | ||
et > /dev/null | ||
fi | ||
-e QT_IM_MODULE="fcitx" \ | ||
-e GTK_IM_MODULE="fcitx" \ | ||
-v ${HOME}:${BASENAME} \ | ||
--name ${COMMAND_NAME} \ | ||
${IMAGE_NAME} \ | ||
${COMMAND} ${FINALNAME} > /dev/null 2>&1 | ||
} | ||
|
||
function run() | ||
{ | ||
xhost + > /dev/null 2>&1 | ||
|
||
START=$(docker ps -q --filter="name=${COMMAND_NAME}") | ||
STOP=$(docker ps -aq --filter="name=${COMMAND_NAME}") | ||
|
||
if [ -n "${START}" ] | ||
then | ||
docker exec -u user $START ${COMMAND} $FINALNAME > /dev/null 2>&1 | ||
elif [ -n "${STOP}" ] | ||
then | ||
if [ -z ${FINALNAME} ] | ||
then | ||
docker restart ${STOP} > /dev/null 2>&1 | ||
else | ||
docker container rm ${STOP} > /dev/null 2>&1 | ||
startup | ||
fi | ||
else | ||
startup | ||
fi | ||
} | ||
|
||
function main() | ||
{ | ||
NUM=$# | ||
if [ $NUM -eq 1 ] | ||
then | ||
parse_arg "$@" | ||
fi | ||
|
||
run "$@" | ||
exit 0 | ||
} | ||
|
||
main "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,83 @@ | ||
#!/bin/bash | ||
|
||
xhost + > /dev/null | ||
|
||
START=$(docker ps -q --filter="name=wpspdf") | ||
STOP=$(docker ps -aq --filter="name=wpspdf") | ||
|
||
if [ -n "${START}" ] | ||
then | ||
docker exec -u user $START wpspdf > /dev/null | ||
elif [ -n "${STOP}" ] | ||
then | ||
docker restart ${STOP} > /dev/null | ||
else | ||
FINALNAME= | ||
BASENAME="/home/user/Documents" | ||
|
||
COMMAND="wpspdf" | ||
COMMAND_NAME="pdf" | ||
IMAGE_NAME="zjzstu/wps:latest" | ||
|
||
# 替换主机文件路径为容器路径 | ||
function parse_arg() | ||
{ | ||
FILE_DIR=$1 | ||
|
||
if [[ ${FILE_DIR} == ./* ]] | ||
then | ||
FINALNAME=${PWD}${FILE_DIR#.} | ||
elif [[ ${FILE_DIR} == ../* ]] | ||
then | ||
FINALNAME=`dirname ${PWD}`${FILE_DIR#..} | ||
elif [[ ${FILE_DIR} == ${HOME}* ]] | ||
then | ||
FINALNAME=${FILE_DIR} | ||
else | ||
FINALNAME=${PWD}/${FILE_DIR} | ||
fi | ||
|
||
FINALNAME=${BASENAME}${FINALNAME#${HOME}} | ||
} | ||
|
||
# 启动wps镜像 | ||
function startup() | ||
{ | ||
docker run -d \ | ||
-v /tmp/.X11-unix:/tmp/.X11-unix \ | ||
-e DISPLAY=unix$DISPLAY \ | ||
-e LOCAL_USER_ID=`id -u $USER` \ | ||
-e DISPLAY=unix${DISPLAY} \ | ||
-e LOCAL_USER_ID=`id -u ${USER}` \ | ||
-e XMODIFIERS="@im=fcitx" \ | ||
-e QT_IM_MODULE="fcitx" \ | ||
-e GTK_IM_MODULE="fcitx" \ | ||
-v $HOME/docs:/home/user/Documents \ | ||
--name wpspdf \ | ||
zjzstu/wps:latest \ | ||
wpspdf > /dev/null | ||
fi | ||
-e QT_IM_MODULE="fcitx" \ | ||
-e GTK_IM_MODULE="fcitx" \ | ||
-v ${HOME}:${BASENAME} \ | ||
--name ${COMMAND_NAME} \ | ||
${IMAGE_NAME} \ | ||
${COMMAND} ${FINALNAME} > /dev/null 2>&1 | ||
} | ||
|
||
function run() | ||
{ | ||
xhost + > /dev/null 2>&1 | ||
|
||
START=$(docker ps -q --filter="name=${COMMAND_NAME}") | ||
STOP=$(docker ps -aq --filter="name=${COMMAND_NAME}") | ||
|
||
if [ -n "${START}" ] | ||
then | ||
docker exec -u user $START ${COMMAND} $FINALNAME > /dev/null 2>&1 | ||
elif [ -n "${STOP}" ] | ||
then | ||
if [ -z ${FINALNAME} ] | ||
then | ||
docker restart ${STOP} > /dev/null 2>&1 | ||
else | ||
docker container rm ${STOP} > /dev/null 2>&1 | ||
startup | ||
fi | ||
else | ||
startup | ||
fi | ||
} | ||
|
||
function main() | ||
{ | ||
NUM=$# | ||
if [ $NUM -eq 1 ] | ||
then | ||
parse_arg "$@" | ||
fi | ||
|
||
run "$@" | ||
exit 0 | ||
} | ||
|
||
main "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,86 @@ | ||
#!/bin/bash | ||
|
||
xhost + > /dev/null | ||
|
||
START=$(docker ps -q --filter="name=wpp") | ||
STOP=$(docker ps -aq --filter="name=wpp") | ||
|
||
if [ -n "${START}" ] | ||
then | ||
docker exec -u user $START wpp > /dev/null | ||
elif [ -n "${STOP}" ] | ||
then | ||
docker restart ${STOP} > /dev/null | ||
else | ||
echo $@ | ||
|
||
FINALNAME= | ||
BASENAME="/home/user/Documents" | ||
|
||
COMMAND="wpp" | ||
COMMAND_NAME="wpp" | ||
IMAGE_NAME="zjzstu/wps:latest" | ||
|
||
# 替换主机文件路径为容器路径 | ||
function parse_arg() | ||
{ | ||
FILE_DIR="$1" | ||
|
||
if [[ ${FILE_DIR} == ./* ]] | ||
then | ||
FINALNAME=${PWD}${FILE_DIR#.} | ||
elif [[ ${FILE_DIR} == ../* ]] | ||
then | ||
FINALNAME=`dirname ${PWD}`${FILE_DIR#..} | ||
elif [[ ${FILE_DIR} == ${HOME}* ]] | ||
then | ||
FINALNAME=${FILE_DIR} | ||
else | ||
FINALNAME=${PWD}/${FILE_DIR} | ||
fi | ||
|
||
FINALNAME=${BASENAME}${FINALNAME#${HOME}} | ||
} | ||
|
||
# 启动wps镜像 | ||
function startup() | ||
{ | ||
docker run -d \ | ||
-v /tmp/.X11-unix:/tmp/.X11-unix \ | ||
-e DISPLAY=unix$DISPLAY \ | ||
-e LOCAL_USER_ID=`id -u $USER` \ | ||
-e DISPLAY=unix${DISPLAY} \ | ||
-e LOCAL_USER_ID=`id -u ${USER}` \ | ||
-e XMODIFIERS="@im=fcitx" \ | ||
-e QT_IM_MODULE="fcitx" \ | ||
-e GTK_IM_MODULE="fcitx" \ | ||
-v $HOME/docs:/home/user/Documents \ | ||
--name wpp \ | ||
zjzstu/wps:latest \ | ||
wpp > /dev/null | ||
fi | ||
-e QT_IM_MODULE="fcitx" \ | ||
-e GTK_IM_MODULE="fcitx" \ | ||
-v ${HOME}:${BASENAME} \ | ||
--name ${COMMAND_NAME} \ | ||
${IMAGE_NAME} \ | ||
${COMMAND} ${FINALNAME} > /dev/null 2>&1 | ||
} | ||
|
||
function run() | ||
{ | ||
xhost + > /dev/null 2>&1 | ||
|
||
START=$(docker ps -q --filter="name=${COMMAND_NAME}") | ||
STOP=$(docker ps -aq --filter="name=${COMMAND_NAME}") | ||
|
||
if [ -n "${START}" ] | ||
then | ||
docker exec -u user $START ${COMMAND} $FINALNAME > /dev/null 2>&1 | ||
elif [ -n "${STOP}" ] | ||
then | ||
if [ -z ${FINALNAME} ] | ||
then | ||
docker restart ${STOP} > /dev/null 2>&1 | ||
else | ||
docker container rm ${STOP} > /dev/null 2>&1 | ||
startup | ||
fi | ||
else | ||
startup | ||
fi | ||
} | ||
|
||
function main() | ||
{ | ||
NUM=$# | ||
if [ $NUM -eq 1 ] | ||
then | ||
parse_arg "$@" | ||
fi | ||
|
||
echo `$FINALNAME` | ||
run "$@" | ||
exit 0 | ||
} | ||
|
||
main "$@" |
Oops, something went wrong.