Compare commits

...

1 Commits

Author SHA1 Message Date
u1 4e1b40521b u 2024-11-06 09:26:14 +00:00
4 changed files with 41 additions and 46 deletions

View File

@ -1,7 +1,7 @@
# Choose a base image. Debian is a good choice due to pyenv # Wybierz bazowy obraz. Debian jest dobrym wyborem ze względu na pyenv
FROM debian:latest FROM debian:latest
# Update the package list and install necessary dependencies # Aktualizacja listy pakietów i instalacja niezbędnych zależności
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
aptitude \ aptitude \
tmux vim-nox nano mc git curl termshark procps \ tmux vim-nox nano mc git curl termshark procps \
@ -13,71 +13,67 @@ RUN apt-get update && apt-get install -y \
python3-pip \ python3-pip \
npm npm
# Set password for root user (optional, for configuration) # Ustawienie hasła dla użytkownika root (opcjonalne, do konfiguracji)
RUN echo 'root:rootpass' | chpasswd RUN echo 'root:rootpass' | chpasswd
# Add a new user `user` with password `pass` and prepare the environment # Dodanie nowego użytkownika `user` z hasłem `pass` i przygotowanie środowiska
RUN useradd -m user && echo 'user:pass' | chpasswd && adduser user sudo RUN useradd -m user && echo 'user:pass' | chpasswd && adduser user sudo
# Switch to user `user` # Przełączenie na użytkownika `user`
USER user USER user
WORKDIR /home/user WORKDIR /home/user
# Install pyenv # Ustawienie zmiennych środowiskowych
RUN git clone https://github.com/pyenv/pyenv .pyenv ENV HOME /home/user
# Install pyenv-virtualenv
RUN git clone https://github.com/pyenv/pyenv-virtualenv .pyenv/plugins/pyenv-virtualenv
# Set environment variables
ENV HOME /home/user
ENV PYENV_ROOT $HOME/.pyenv ENV PYENV_ROOT $HOME/.pyenv
ENV PATH $PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH ENV PATH $PYENV_ROOT/shims:$PYENV_ROOT/bin:$HOME/.local/bin:$PATH
ENV PYENV_VERSION p3.12
# Add pyenv and pyenv-virtualenv configuration to .bashrc # Instalacja pyenv
RUN echo 'export PYENV_ROOT="$HOME/.pyenv"' >> .bashrc RUN git clone https://github.com/pyenv/pyenv $PYENV_ROOT
RUN echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> .bashrc
RUN echo 'eval "$(pyenv init -)"' >> .bashrc
RUN echo 'eval "$(pyenv virtualenv-init -)"' >> .bashrc
# Install Python 3.12 with --enable-shared # Instalacja pyenv-virtualenv
RUN bash -i -c "source ~/.bashrc && env PYTHON_CONFIGURE_OPTS='--enable-shared' pyenv install 3.12" RUN git clone https://github.com/pyenv/pyenv-virtualenv $PYENV_ROOT/plugins/pyenv-virtualenv
# Create a virtual environment p3.12 # Dodanie konfiguracji pyenv i pyenv-virtualenv do .bashrc
RUN bash -i -c "source ~/.bashrc && pyenv virtualenv 3.12 p3.12" RUN echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc \
&& echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc \
&& echo 'eval "$(pyenv init --path)"' >> ~/.bashrc \
&& echo 'eval "$(pyenv init -)"' >> ~/.bashrc \
&& echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
# Set p3.12 as the default virtual environment # Instalacja Pythona 3.12 z --enable-shared
RUN bash -i -c "source ~/.bashrc && pyenv local p3.12" RUN env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.12.0
# Install ipython in the p3.12 environment # Utworzenie środowiska wirtualnego p3.12
RUN bash -i -c "source ~/.bashrc && pyenv activate p3.12 && pip install ipython" RUN pyenv virtualenv 3.12.0 p3.12
# Install Vim-Plug for Vim plugin management # Ustawienie p3.12 jako globalnego środowiska
RUN pyenv global p3.12
# Instalacja ipython w środowisku p3.12
RUN pip install ipython
# Instalacja Vim-Plug do zarządzania wtyczkami Vim
RUN curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ RUN curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
# Copy the vim configuration file for plugins # Kopiowanie plików konfiguracyjnych vim i tmux
COPY ./_confs/.vimrc /home/user/.vimrc COPY --chown=user:user ./_confs/.vimrc /home/user/.vimrc
COPY --chown=user:user ./_confs/.tmux.conf /home/user/.tmux.conf
# Install Vim plugins via Vim-Plug # Instalacja wtyczek Vim za pomocą Vim-Plug
RUN vim +'PlugInstall --sync' +qall RUN vim +'PlugInstall --sync' +qall
# Install Poetry # Instalacja Poetry w środowisku p3.12
RUN curl -sSL https://install.python-poetry.org | python3 - RUN curl -sSL https://install.python-poetry.org | python3 -
# Copy the project into the image # Kopiowanie projektu do obrazu
COPY --chown=user:user . /home/user/fapi COPY --chown=user:user . /home/user/fapi
COPY ./_confs/* ./
# Set the working directory for installing dependencies # Instalacja zależności za pomocą Poetry z głównego katalogu
WORKDIR /home/user/fapi RUN cd /home/user/fapi && poetry config virtualenvs.create false && poetry install
# Add Poetry path to PATH directly in the Dockerfile # Uruchomienie aplikacji
ENV PATH="$HOME/.local/bin:$PATH" CMD ["python", "/home/user/fapi/entrypoint.py"]
# Install dependencies using Poetry
RUN bash -i -c "source ~/.bashrc && poetry config virtualenvs.create false && poetry install"
# Run the application
CMD ["/bin/bash", "-c", "python entrypoint.py"]

1
__n1
View File

@ -1,7 +1,6 @@
sudo docker run --rm \ sudo docker run --rm \
-dit \ -dit \
--privileged \ --privileged \
-p 9999:9999 \
-p 8888:8888 \ -p 8888:8888 \
-v /home/user/work/fapi/fapi/src:/home/user/fapi \ -v /home/user/work/fapi/fapi/src:/home/user/fapi \
--name f1 \ --name f1 \

2
__run2
View File

@ -1 +1 @@
docker run --rm -it -p 9999:9999 --name cfapi fapi bash docker run --rm -it -p 8888:8888 --name cfapi fapi bash