mirror of
				https://github.com/yuezk/GlobalProtect-openconnect.git
				synced 2025-05-20 07:26:58 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			63 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
FROM ubuntu:18.04
 | 
						|
 | 
						|
ARG USERNAME=vscode
 | 
						|
ARG USER_UID=1000
 | 
						|
ARG USER_GID=$USER_UID
 | 
						|
 | 
						|
ENV RUSTUP_HOME=/usr/local/rustup \
 | 
						|
    CARGO_HOME=/usr/local/cargo \
 | 
						|
    PATH=/usr/local/cargo/bin:$PATH \
 | 
						|
    RUST_VERSION=1.75.0
 | 
						|
 | 
						|
RUN set -eux; \
 | 
						|
  apt-get update; \
 | 
						|
  apt-get install -y --no-install-recommends \
 | 
						|
    sudo \
 | 
						|
    ca-certificates \
 | 
						|
    curl \
 | 
						|
    gnupg \
 | 
						|
    git \
 | 
						|
    less \
 | 
						|
    software-properties-common \
 | 
						|
    # Tauri dependencies
 | 
						|
    libwebkit2gtk-4.0-dev build-essential wget libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev; \
 | 
						|
  # Install openconnect
 | 
						|
  add-apt-repository ppa:yuezk/globalprotect-openconnect; \
 | 
						|
  apt-get update; \
 | 
						|
  apt-get install -y openconnect libopenconnect-dev; \
 | 
						|
  # Create a non-root user
 | 
						|
  groupadd --gid $USER_GID $USERNAME; \
 | 
						|
  useradd --uid $USER_UID --gid $USER_GID -m $USERNAME; \
 | 
						|
  echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME; \
 | 
						|
  chmod 0440 /etc/sudoers.d/$USERNAME; \
 | 
						|
  # Install Node.js
 | 
						|
  mkdir -p /etc/apt/keyrings; \
 | 
						|
  curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg; \
 | 
						|
  echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_16.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list; \
 | 
						|
  apt-get update; \
 | 
						|
  apt-get install -y nodejs; \
 | 
						|
  corepack enable; \
 | 
						|
  # Install diff-so-fancy
 | 
						|
  npm install -g diff-so-fancy; \
 | 
						|
  # Install Rust
 | 
						|
  curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain $RUST_VERSION; \
 | 
						|
  chown -R $USERNAME:$USERNAME $RUSTUP_HOME $CARGO_HOME; \
 | 
						|
  rustup --version; \
 | 
						|
  cargo --version; \
 | 
						|
  rustc --version
 | 
						|
 | 
						|
USER $USERNAME
 | 
						|
 | 
						|
# Install Oh My Zsh
 | 
						|
RUN sh -c "$(wget -O- https://github.com/deluan/zsh-in-docker/releases/download/v1.1.5/zsh-in-docker.sh)" -- \
 | 
						|
    -t https://github.com/denysdovhan/spaceship-prompt \
 | 
						|
    -a 'SPACESHIP_PROMPT_ADD_NEWLINE="false"' \
 | 
						|
    -a 'SPACESHIP_PROMPT_SEPARATE_LINE="false"' \
 | 
						|
    -p git \
 | 
						|
    -p https://github.com/zsh-users/zsh-autosuggestions \
 | 
						|
    -p https://github.com/zsh-users/zsh-completions; \
 | 
						|
    # Change the default shell
 | 
						|
    sudo chsh -s /bin/zsh $USERNAME; \
 | 
						|
    # Change the XTERM to xterm-256color
 | 
						|
    sed -i 's/TERM=xterm/TERM=xterm-256color/g' $HOME/.zshrc;
 |