summaryrefslogtreecommitdiff
path: root/docker_build
diff options
context:
space:
mode:
Diffstat (limited to 'docker_build')
-rw-r--r--docker_build/Dockerfile50
-rw-r--r--docker_build/vimrc77
2 files changed, 127 insertions, 0 deletions
diff --git a/docker_build/Dockerfile b/docker_build/Dockerfile
new file mode 100644
index 0000000..644b18f
--- /dev/null
+++ b/docker_build/Dockerfile
@@ -0,0 +1,50 @@
1FROM rockylinux:9
2
3# Install required packages, resolving curl conflict
4RUN dnf install -y epel-release
5RUN dnf install -y --allowerasing openssh-server sudo procps-ng \
6 gcc gcc-c++ make cmake pkg-config openssl-devel libicu-devel perl python3-devel \
7 nc openssl bat autossh tmux htop tar bmon gzip tree wget \
8 nano vim unzip net-tools git python3 python3-pip make wireguard-tools usbutils yum xclip \
9 && dnf clean all
10
11# Configure SSH
12RUN mkdir -p /var/run/sshd && \
13 ssh-keygen -A && \
14 sed -i 's/#PubkeyAuthentication yes/PubkeyAuthentication yes/' /etc/ssh/sshd_config && \
15 sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config && \
16 sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
17
18# Setup SSH directory for root and ensure root has valid shell
19RUN mkdir -p /root/.ssh && \
20 chmod 700 /root/.ssh && \
21 usermod -s /bin/bash root
22
23# Copy SSH public keys from ssh-keys directory into the image
24COPY ssh-keys/*.pub /tmp/ssh-keys/
25RUN cat /tmp/ssh-keys/*.pub > /root/.ssh/authorized_keys && \
26 chmod 600 /root/.ssh/authorized_keys && \
27 rm -rf /tmp/ssh-keys
28
29# Configure vim
30COPY docker_build/vimrc /etc/vimrc
31
32# Configure bash prompt and colors
33RUN echo 'LS_COLORS=$LS_COLORS:"di=38;5;135:ex=00;32:" ; export LS_COLORS' >> /etc/bashrc && \
34 echo 'PS1="[\[\033[01;32m\]\u\[\033[00m\]@\h \[\033[38;5;135m\]\W\[\033[00m\]]\$ "' >> /etc/bashrc && \
35 echo 'export PATH=$PATH:/root/.cargo/bin' >> /root/.bashrc
36
37# Install Rust and tools for root
38RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y && \
39 echo '[ -f "$HOME/.cargo/env" ] && source "$HOME/.cargo/env"' >> ~/.bashrc && \
40 source "$HOME/.cargo/env" && \
41 cargo install cargo-clone-crate cargo-edit cargo-info evcxr_jupyter bacon du-dust
42
43# Set working directory
44WORKDIR /root
45
46# Expose SSH port
47EXPOSE 22
48
49# Start SSH daemon
50CMD ["/usr/sbin/sshd", "-D", "-e"] \ No newline at end of file
diff --git a/docker_build/vimrc b/docker_build/vimrc
new file mode 100644
index 0000000..36583bc
--- /dev/null
+++ b/docker_build/vimrc
@@ -0,0 +1,77 @@
1" Basic vim configuration for development environment
2
3" Enable syntax highlighting
4syntax on
5
6" Enable line numbers
7set number
8
9" Enable relative line numbers for easier navigation
10set relativenumber
11
12" Set tab width to 4 spaces
13set tabstop=4
14set shiftwidth=4
15set expandtab
16
17" Enable auto-indentation
18set autoindent
19set smartindent
20
21" Enable incremental search
22set incsearch
23
24" Highlight search results
25set hlsearch
26
27" Case-insensitive search unless uppercase is used
28set ignorecase
29set smartcase
30
31" Show matching brackets
32set showmatch
33
34" Enable mouse support
35set mouse=a
36
37" Set backspace behavior
38set backspace=indent,eol,start
39
40" Show current line and column
41set ruler
42
43" Enable file type detection
44filetype on
45filetype plugin on
46filetype indent on
47
48" Set color scheme (if available)
49colorscheme default
50
51" Enable visual bell instead of beep
52set visualbell
53
54" Set encoding
55set encoding=utf-8
56
57" Show command in status line
58set showcmd
59
60" Enable wildmenu for command completion
61set wildmenu
62
63" Set status line
64set laststatus=2
65set statusline=%F%m%r%h%w\ [%l,%c]\ [%L\ lines]
66
67" Rust specific settings
68autocmd FileType rust setlocal tabstop=4 shiftwidth=4 expandtab
69
70" Python specific settings
71autocmd FileType python setlocal tabstop=4 shiftwidth=4 expandtab
72
73" JavaScript/TypeScript settings
74autocmd FileType javascript,typescript setlocal tabstop=2 shiftwidth=2 expandtab
75
76" YAML settings
77autocmd FileType yaml setlocal tabstop=2 shiftwidth=2 expandtab \ No newline at end of file