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"] |