feat: code-server
Some checks reported errors
continuous-integration/drone/push Build was killed

This commit is contained in:
范胜发
2024-02-22 17:07:40 +08:00
parent efaa05cf9b
commit 2fe8c30729
4 changed files with 63 additions and 38 deletions

View File

@ -60,6 +60,6 @@ steps:
- list=$(docker ps -a | grep my-dev-server* | awk '{print $1}') - list=$(docker ps -a | grep my-dev-server* | awk '{print $1}')
- test "$list" = "" && echo "none my-dev-server containers running" || docker stop $list && docker container rm $list - test "$list" = "" && echo "none my-dev-server containers running" || docker stop $list && docker container rm $list
# 过滤出dockerImages的id, 删除none镜像 # 过滤出dockerImages的id, 删除none镜像
- docker run -d -p 18000:8080 -v /mnt/data/opt/dev-server/.local:/root/.local /mnt/data/opt/dev-server/.config:/root/.config -v /mnt/data/opt/dev-server/project:/app/project -v /mnt/data/opt/dev-server/.ssh:/root/.ssh -e ROOT_PASSWD=heiyu518 -e GIT_USER=mol -e GIT_EMAIL=hiiragi10073@163.com -e DOCKER_USER=mol10073 -e DOCKER_PASSWD=5opmbU2YvhTMwB -e http_proxy=http://192.168.124.12:7890 -e https_proxy=http://192.168.124.12:7890 --restart=always --name=my-dev-server git.liliyamol.cn:8081/mol/my-dev-server:latest - docker run -d -p 18000:8080 -v /mnt/data/opt/dev-server/.local:/root/.local -v /mnt/data/opt/dev-server/.config:/root/.config -v /mnt/data/opt/dev-server/project:/home/coder/project -v /mnt/data/opt/dev-server/.ssh:/root/.ssh -e ROOT_PASSWD=heiyu518 -e GIT_USER=mol -e GIT_EMAIL=hiiragi10073@163.com -e DOCKER_USER=mol10073 -e DOCKER_PASSWD=5opmbU2YvhTMwB -e http_proxy=http://192.168.124.12:7890 -e https_proxy=http://192.168.124.12:7890 --restart=always --name=my-dev-server git.liliyamol.cn:8081/mol/my-dev-server:latest
- docker rmi $(docker images | grep "none" | awk '{print $3}') - docker rmi $(docker images | grep "none" | awk '{print $3}')
- echo ==-----==部署成功==-----== - echo ==-----==部署成功==-----==

View File

@ -1,11 +1,11 @@
FROM ubuntu FROM ubuntu
EXPOSE 8080 EXPOSE 8080
EXPOSE 22 EXPOSE 22
WORKDIR /app WORKDIR /home/coder
COPY . . COPY . .
VOLUME [ "/app/project", "/root/.ssh", "/root/.local", "/root/.config" ] VOLUME [ "/home/coder/project", "/root/.ssh", "/root/.local", "/root/.config" ]
# 运行时可以添加代理 # 运行时可以添加代理
ARG PROXY ARG PROXY
@ -89,5 +89,5 @@ RUN echo "安装 code-server" && \
npm install --global code-server --unsafe-perm npm install --global code-server --unsafe-perm
ENTRYPOINT ["/app/docker-entry-point.sh"] ENTRYPOINT ["/home/coder/entrypoint.sh", "--bind-addr", "0.0.0.0:8080", "."]

View File

@ -1,34 +0,0 @@
#!/bin/bash
if [ -n "$ROOT_PASSWD" ]; then
echo "root:${ROOT_PASSWD}" | chpasswd
echo "密码设置完毕" >> /app/info.log
fi
if [ -e "/root/.gitconfig" ]; then
echo "git配置文件已存在" >> /app/info.log
else
touch /root/.gitconfig
echo "git配置文件已创建" >> /app/info.log
fi
# git使用openssh的shh程序
git config --global core.sshCommand "/usr/bin/ssh"
if [ -n "$GIT_USER" ] && [ -n "$GIT_EMAIL" ]; then
git config --global user.name "$GIT_USER"
git config --global user.email "$GIT_EMAIL"
echo "git 用户已设置完毕" >> /app/info.log
fi
if [ -n "$DOCKER_USER" ] && [ -n "$DOCKER_PASSWD" ]; then
docker login -u "$DOCKER_USER" -p "$DOCKER_PASSWD"
echo "docker 用户登录完成" >> /app/info.log
fi
service ssh start >> /app/info.log
ssh-agent bash >> /app/info.log
cat /app/info.log
code-server

59
entrypoint.sh Normal file
View File

@ -0,0 +1,59 @@
#!/bin/bash
if [ -n "$ROOT_PASSWD" ]; then
echo "root:${ROOT_PASSWD}" | chpasswd
echo "密码设置完毕" >> /app/info.log
fi
if [ -e "/root/.gitconfig" ]; then
echo "git配置文件已存在" >> /app/info.log
else
touch /root/.gitconfig
echo "git配置文件已创建" >> /app/info.log
fi
# git使用openssh的shh程序
git config --global core.sshCommand "/usr/bin/ssh"
if [ -n "$GIT_USER" ] && [ -n "$GIT_EMAIL" ]; then
git config --global user.name "$GIT_USER"
git config --global user.email "$GIT_EMAIL"
echo "git 用户已设置完毕" >> /app/info.log
fi
if [ -n "$DOCKER_USER" ] && [ -n "$DOCKER_PASSWD" ]; then
docker login -u "$DOCKER_USER" -p "$DOCKER_PASSWD"
echo "docker 用户登录完成" >> /app/info.log
fi
service ssh start >> /app/info.log
ssh-agent bash >> /app/info.log
cat /app/info.log
set -eu
# We do this first to ensure sudo works below when renaming the user.
# Otherwise the current container UID may not exist in the passwd database.
eval "$(fixuid -q)"
if [ "${DOCKER_USER-}" ]; then
USER="$DOCKER_USER"
if [ "$DOCKER_USER" != "$(whoami)" ]; then
echo "$DOCKER_USER ALL=(ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/nopasswd > /dev/null
# Unfortunately we cannot change $HOME as we cannot move any bind mounts
# nor can we bind mount $HOME into a new home as that requires a privileged container.
sudo usermod --login "$DOCKER_USER" coder
sudo groupmod -n "$DOCKER_USER" coder
sudo sed -i "/coder/d" /etc/sudoers.d/nopasswd
fi
fi
# Allow users to have scripts run on container startup to prepare workspace.
# https://github.com/coder/code-server/issues/5177
if [ -d "${ENTRYPOINTD}" ]; then
find "${ENTRYPOINTD}" -type f -executable -print -exec {} \;
fi
exec dumb-init /usr/bin/code-server "$@"