coteerratu commited on
Commit
f31dae0
·
verified ·
1 Parent(s): b960834

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +37 -42
Dockerfile CHANGED
@@ -1,42 +1,37 @@
1
- FROM node:current-alpine as builder
2
- RUN apk add -U build-base python3 python2
3
- WORKDIR /usr/src/app
4
- COPY wetty /usr/src/app
5
- RUN yarn && \
6
- yarn build && \
7
- yarn install --production --ignore-scripts --prefer-offline
8
-
9
- FROM node:current-alpine
10
- LABEL maintainer="[email protected]"
11
- WORKDIR /usr/src/app
12
- ENV NODE_ENV=production
13
- EXPOSE 3000
14
- COPY --from=builder /usr/src/app/build /usr/src/app/build
15
- COPY --from=builder /usr/src/app/node_modules /usr/src/app/node_modules
16
- COPY wetty/package.json /usr/src/app
17
-
18
- COPY entrypoint.sh /entrypoint.sh
19
-
20
- RUN apk update && \
21
- apk add --no-cache \
22
- coreutils \
23
- openssh-client \
24
- sshpass \
25
- curl \
26
- openssl && \
27
- rm -rf /var/cache/apk/* && \
28
- mkdir /home/node/.ssh && \
29
- chown node:node /home/node/.ssh && \
30
- chmod +x /entrypoint.sh && \
31
- chown root:root -R /usr/src/app && \
32
- chmod u=rwX,og=rX -R /usr/src/app
33
-
34
- # setup healthcheck
35
- HEALTHCHECK --interval=15s --timeout=20s \
36
- CMD curl -sS --fail --insecure https://localhost:3000${BASEURL} || exit 1
37
-
38
- VOLUME /home/node
39
-
40
- USER node
41
-
42
- ENTRYPOINT [ "/entrypoint.sh" ]
 
1
+ # 使用Ubuntu作为基础镜像
2
+ FROM ubuntu:latest
3
+
4
+ # 更新包列表并安装必要的软件包
5
+ RUN apt-get update && apt-get install -y \
6
+ bash \
7
+ wget \
8
+ ca-certificates \
9
+ sudo \ # 添加sudo软件包
10
+ && apt-get clean \
11
+ && rm -rf /var/lib/apt/lists/*
12
+
13
+ # 创建 /data 目录并赋予用户 1001 权限
14
+ RUN mkdir -p /data && chown -R 1001:1001 /data
15
+
16
+ # 下载并安装 gotty
17
+ RUN wget -O gotty.tar.gz https://github.com/yudai/gotty/releases/download/v1.0.1/gotty_linux_amd64.tar.gz \
18
+ && tar -xzvf gotty.tar.gz -C /usr/local/bin/ \
19
+ && chmod +x /usr/local/bin/gotty \
20
+ && rm gotty.tar.gz
21
+
22
+ # 创建用户 1001 并设置工作目录
23
+ RUN useradd -u 1001 -d /data user1001 \
24
+ && echo 'user1001 ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers.d/user1001
25
+
26
+ # 切换到用户 1001 并设置工作目录
27
+ USER 1001
28
+ WORKDIR /data
29
+
30
+ # 创建 .bashrc 文件并设置 PS1 环境变量
31
+ RUN echo 'PS1="online-terminal:\\w\\$ "' > /data/.bashrc
32
+
33
+ # 暴露端口
34
+ EXPOSE 8080
35
+
36
+ # 使用 gotty 运行 bash,并修改 PS1 环境变量
37
+ CMD ["gotty", "--permit-write", "--port", "8080", "--permit-arguments", "/bin/bash", "--rcfile", "/data/.bashrc"]