Przeskakując pomiędzy maszynami z zainstalowanym omz trochę irytował mnie defaultowy prompt który nie pokazywał hostname tak więc aby go zaktualizować kopiujemy do custom ten który obecnie używamy:
cp ~/.oh-my-zsh/themes/robbyrussell.zsh-theme ~/.oh-my-zsh/custom/themes vim .oh-my-zsh/custom/themes/robbyrussell.zsh-theme
Następnie dodajemy co tam chcemy, u mnie tylko hostname:
Od ponad roku zdarza mi się często “pokodzić” coś w pythonie a jako, że wcześniej głównie pisałem skrypty w bashu to vim w zupełności mi wystarczał. Tak więc w tym czasie przekonałem się do vs code, pyenva do zarządzania virtualenvami i różnymi wersjami pythona i od jakiegoś czasu również devcontenera.
Jak ktoś nie wie co to to szybciutko: konterer z predefiniowana konfuguracja dla całego środowiska no i vscode oczywiście. Ku pamięci wrzucam co używam lokalnie ale można to oczywiście mega rozbudować co też testowałem w pracy i działa to bardzo płynnie. Od pewnego czasu nawet na applowych procesorach dzięki dodaniu wsparcia dla rosetty działa to na mac os całkiem zgrabnie.
i dalej w repo w którym chcemy korzystać z devcontenera dodajemy:
vscode ➜ /workspaces/code/devcontainer (master) $ ls -l .devcontainer
total 8
-rw-r--r-- 1 vscode vscode 725 Nov 16 10:51 Dockerfile
-rw-r--r-- 1 vscode vscode 1166 Nov 16 10:46 devcontainer.json
cat .devcontainer/Dockerfile
#BASE IMAGE
FROM --platform=linux/amd64 mcr.microsoft.com/devcontainers/python:0-3.11
#ENVS
ENV SHELL /usr/bin/zsh
#additional packages
RUN apt update && apt install -y vim
USER vscode
WORKDIR /home/vscode
RUN wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O - | zsh || true
RUN sed -i -e 's/plugins=(git)/plugins=(git vi-mode)/' ~/.zshrc
RUN curl https://pyenv.run | bash
RUN echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
RUN echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
RUN echo 'eval "$(pyenv init -)"' >> ~/.zshrc
ENV HOME /home/vscode
ENV PYENV_ROOT $HOME/.pyenv
ENV PATH $PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH
RUN pyenv install 3.12
cat .devcontainer/devcontainer.json
{
"build": {
"dockerfile": "Dockerfile"
},
"customizations": {
"vscode": {
"extensions": [
"ms-python.python",
"njpwerner.autodocstring",
"eamodio.gitlens",
"redhat.vscode-yaml",
"ms-python.isort",
"ms-python.flake8",
"ms-python.black-formatter",
"trond-snekvik.simple-rst",
"redhat.ansible"
],
"settings": {
"files.insertFinalNewline": true,
"editor.formatOnSave": true,
"flake8.args": [
"--ignore=E501,W503,F722"
]
},
"terminal.integrated.defaultProfile.linux": "zsh",
"terminal.integrated.profiles.linux": {
"zsh": {
"path": "/usr/bin/zsh"
}
}
}
},
"features": {},
"mounts": [
"source=${localEnv:HOME}${localEnv:USERPROFILE}/.ssh,target=/home/vscode/.ssh,type=bind,consistency=cached"
],
"name": "pakos",
"postCreateCommand": ""
}
Bonus: devcontainer cli
➜ devcontainer git:(master) devcontainer
devcontainer <command>
Commands:
devcontainer open [path] Open a dev container in VS Code
devcontainer up Create and run dev container
devcontainer set-up Set up an existing container as a dev container
devcontainer build [path] Build a dev container image
devcontainer run-user-commands Run user commands
devcontainer read-configuration Read configuration
devcontainer outdated Show current and available versions
devcontainer upgrade Upgrade lockfile
devcontainer features Features commands
devcontainer templates Templates commands
devcontainer exec <cmd> [args..] Execute a command on a running dev container
Options:
--help Show help [boolean]
--version Show version number [boolean]
devcontainer@0.52.1 /home/pakos/.vscode/extensions/ms-vscode-remote.remote-containers-0.321.0
Not enough non-option arguments: got 0, need at least 1
Ktoś chyba nie przemyślał zależności dla gnome-boxes bo po instalacji brakuje dwóch rzeczy:
• The CPU is capable of virtualization: yes
• The KVM module is loaded: yes
• Libvirt KVM guest available: no
• Boxes storage pool available: no
Could not get “gnome-boxes” storage pool information from libvirt. Make sure “virsh -c qemu:///session pool-dumpxml gnome-boxes” is working.
• The SELinux context is default: no
• The CPU is capable of virtualization: yes
• The KVM module is loaded: yes
• Libvirt KVM guest available: yes
• Boxes storage pool available: yes
• The SELinux context is default: no
Odkomentuj session.suspend-timeout-seconds i ustaw na zero:
["session.suspend-timeout-seconds"] = 0,
No i restart:
systemctl --user restart wireplumber
Ps. jedyny minus/różnica w porównaniu do pulseaudio to że głośniki po podłączeniu/włączeniu systemu nadal startują w trybie suspended a nie idle co za tym idzie “buczenie” doskwiera, dopóki nie poleci jakiś dźwięk.
Skoro jeden z dysków zaczął szwankować to przy okazji nadarzyła się okazja na kupno nowych z większą pojemnością, padło na Seagate IronWolf CMR 4 TB 3.5” SATA III (6 Gb/s) (ST4000VN008).
Filozofii tutaj żadnej nie ma, bo w przypadku raida 1,5,6,10 i TS-251+ wszystko robi się online, ot wypinasz i wkładasz nowy dysk, rebuild raida i następny. Na końcu extend capacity i i synchro raida. Wszystko w zasadzie samo się odpala więc tylko czekamy i monitorujemy. Ku pamięci dwie procedury:
This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish.AcceptRead More
Privacy & Cookies Policy
Privacy Overview
This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.