File size: 1,289 Bytes
4d89218
d6a8f33
f31dae0
4d89218
d6a8f33
 
 
 
 
1b93113
d6a8f33
f31dae0
928e4ae
 
 
4d89218
928e4ae
f31dae0
4d89218
d6a8f33
 
 
 
f31dae0
4d89218
bb5a6ec
928e4ae
bb5a6ec
d6a8f33
928e4ae
 
d6a8f33
 
4d89218
d6a8f33
 
4d89218
bb5a6ec
d6a8f33
928e4ae
7af8cd3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# Use Ubuntu as the base image
FROM ubuntu:latest

# Update package lists and install necessary packages
RUN apt-get update && apt-get install -y \
    bash \
    wget \
    ca-certificates \
    sudo

RUN apt-get clean && rm -rf /var/lib/apt/lists/*

# Disable 'no new privileges' flag
# RUN echo 'Defaults !sysctl,!snap' > /etc/sudoers.d/no-new-privileges

# Create /data directory and give permission to user 1001
RUN mkdir -p /data && chown -R 1001:1001 /data

# Download and install gotty
RUN wget -O gotty.tar.gz https://github.com/yudai/gotty/releases/download/v1.0.1/gotty_linux_amd64.tar.gz \
 && tar -xzvf gotty.tar.gz -C /usr/local/bin/ \
 && chmod +x /usr/local/bin/gotty \
 && rm gotty.tar.gz

# Create user 1001 and set working directory
RUN useradd -u 1001 -d /data user1001 \
 && echo 'user1001 ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/user1001 \
 && chmod 0440 /etc/sudoers.d/user1001

# Switch to user 1001 and set working directory
USER 1001
WORKDIR /data

# Create .bashrc file and set PS1 environment variable
RUN echo 'PS1="online-terminal:\\w\\$ "' > /data/.bashrc

# Expose port
EXPOSE 8080

# Use gotty to run bash and modify PS1 environment variable
CMD ["gotty", "--permit-write", "--port", "3000", "--permit-arguments", "/bin/bash", "--rcfile", "/data/.bashrc"]