diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 93036d1..54c3203 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,18 +1,17 @@ FROM mcr.microsoft.com/devcontainers/python:3.13 # Install dependency to make bash completion work with invoke -RUN apt-get update && \ - export DEBIAN_FRONTEND=noninteractive && \ - apt-get install -y bash-completion && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + bash-completion \ + && rm -rf /var/lib/apt/lists/* USER vscode # pipx is already installed in the base devcontainers Python image -RUN pipx install invoke && \ - invoke --print-completion-script=bash >> ~/.bash_completion +RUN pipx install invoke \ + && invoke --print-completion-script=bash >> ~/.bash_completion -RUN pipx install poetry && \ - pipx inject poetry "poetry-dynamic-versioning[plugin]" && \ - poetry completions bash >> ~/.bash_completion +RUN pipx install poetry \ + && pipx inject poetry "poetry-dynamic-versioning[plugin]" \ + && poetry completions bash >> ~/.bash_completion diff --git a/.gitpod.Dockerfile b/.gitpod.Dockerfile index 23282d1..858ee0d 100644 --- a/.gitpod.Dockerfile +++ b/.gitpod.Dockerfile @@ -1,27 +1,42 @@ FROM gitpod/workspace-python-3.12 +USER root + +# Install system dependencies +# - bash-completion for shell completions of invoke +# - postgresql-common for the apt.postgresql.org.sh script +# - postgresql-client-17 for a current version of psql +RUN sudo apt-get update \ + && apt-get install -y --no-install-recommends \ + bash-completion \ + postgresql-common \ + && /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -y \ + && apt-get install -y --no-install-recommends \ + postgresql-client-17 \ + && rm -rf /var/lib/apt/lists/* + USER gitpod ENV NVM_DIR $HOME/.nvm ENV NODE_VERSION 20.11.0 - -RUN mkdir $NVM_DIR && \ - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash && \ - . $NVM_DIR/nvm.sh && \ - nvm install $NODE_VERSION && \ - nvm alias default $NODE_VERSION && \ - nvm use default - -RUN python3 -m pip install --user pipx && \ - python3 -m pipx ensurepath && \ - python3 -m pipx install invoke && \ - invoke --print-completion-script=bash >> $HOME/.bash_completion - ENV NODE_PATH $NVM_DIR/v$NODE_VERSION/lib/node_modules ENV PATH $NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH +# Node is not available in in the Gitpod Python image, so we install it +RUN mkdir $NVM_DIR \ + && curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash \ + && . $NVM_DIR/nvm.sh \ + && nvm install $NODE_VERSION \ + && nvm alias default $NODE_VERSION \ + && nvm use default + +RUN python3 -m pip install --user pipx \ + && python3 -m pipx ensurepath \ + && python3 -m pipx install invoke \ + && invoke --print-completion-script=bash >> $HOME/.bash_completion + # Poetry is already installed in the base Gitpod Python image, # but we need to upgrade it -RUN poetry self update && \ - poetry self add "poetry-dynamic-versioning[plugin]" && \ - poetry completions bash >> ~/.bash_completion +RUN poetry self update \ + && poetry self add "poetry-dynamic-versioning[plugin]" \ + && poetry completions bash >> ~/.bash_completion