Sulla base @ risposta di VonC ho aggiungendo quanto segue alla mia Dockerfile (che mi permette di correre il contenitore senza digitare le variabili di ambiente sul cli ogni volta):
ENV TERM xterm-256color
#... more stuff
CMD ["bash", "-l"]
e abbastanza sicuro che funziona con:
docker run -it my-image:tag
Per tmux
a lavorare con il colore, a mio ~/.tmux.conf
ho bisogno:
set -g default-terminal "screen-256color"
e per utf8
supporto tmux
, nel mio ~/.bashrc
:
alias tmux='tmux -u'
mio Dockerfile:
FROM fedora:26
ENV TERM xterm-256color
RUN dnf upgrade -y && \
dnf install golang tmux git vim -y && \
mkdir -p /app/go/{bin,pkg,src} && \
echo 'export GOPATH=/app/go' >> $HOME/.bashrc && \
echo 'export PATH=$PATH:$GOPATH/bin' >> $HOME/.bashrc && \
mkdir -p ~/.vim/autoload ~/.vim/bundle && \
curl -LSso ~/.vim/autoload/pathogen.vim \
https://tpo.pe/pathogen.vim && \
git clone https://github.com/farazdagi/vim-go-ide.git \
~/.vim_go_runtime && \
bash ~/.vim_go_runtime/bin/install && \
echo "alias govim='vim -u ~/.vimrc.go'" >> ~/.bashrc && \
echo "alias tmux='tmux -u'" >> ~/.bashrc && \
echo 'set -g default-terminal "screen-256color"' >> ~/.tmux.conf
CMD ["bash", "-l"]
Il Dockerfile crea un'immagine basata su Fedora 26, lo aggiorna, installa alcuni p ackages (git, vim, golang e tmux), installa il plugin pathogen per vim, quindi installa un repo git da qui vim-go-ide e infine fa qualche modifica ad alcuni file di configurazione per ottenere il colore e utf8 funzionante. Basta aggiungere memoria persistente, probabilmente montata sotto/app/go.
Se si dispone di un'immagine con tutti gli strumenti di sviluppo già installati, basta fare un Dockerfile
con ENV
dichiarazione e aggiungere i comandi per modificare i file di configurazione in un comunicato RUN
senza i comandi di installazione e utilizzare l'immagine di base nella dichiarazione FROM
. Preferisco questa soluzione perché sono pigro e (oltre alla configurazione iniziale) consente di salvare la digitazione quando si desidera eseguire l'immagine.
Using vim and plugins within tmux
Cosa succede se si sorgente '.bash_prompt' da' .bashrc' (dove hai usato per impostare 'PS1' manualmente, invece di' .bash_profile'? (Questo è tecnicamente più corretto, potresti voler impostare 'PS1' per una shell interattiva che non sia anche una shell di login.) – chepner