mirror of
https://github.com/nvbn/thefuck.git
synced 2025-01-18 12:06:04 +00:00
#1184: Add devcontainer for easy Python development
* adding devcontainer and new rule for main-master * update devcontainer work * cleaning up devcontainer.json * fixed line ending * move to VARIANT 3 * Update .devcontainer/devcontainer.json * Update .devcontainer/devcontainer.json * Update .devcontainer/devcontainer.json Co-authored-by: Pablo Aguiar <scorphus@gmail.com>
This commit is contained in:
parent
0668822abb
commit
58f61d8090
10
.devcontainer/Dockerfile
Normal file
10
.devcontainer/Dockerfile
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.163.1/containers/python-3/.devcontainer/base.Dockerfile
|
||||||
|
|
||||||
|
# [Choice] Python version: 3, 3.9, 3.8, 3.7, 3.6
|
||||||
|
ARG VARIANT="3"
|
||||||
|
FROM mcr.microsoft.com/vscode/devcontainers/python:0-${VARIANT}
|
||||||
|
|
||||||
|
# [Optional] If your pip requirements rarely change, uncomment this section to add them to the image.
|
||||||
|
COPY requirements.txt /tmp/pip-tmp/
|
||||||
|
RUN pip3 --disable-pip-version-check --no-cache-dir install -r /tmp/pip-tmp/requirements.txt \
|
||||||
|
&& rm -rf /tmp/pip-tmp
|
34
.devcontainer/devcontainer.json
Normal file
34
.devcontainer/devcontainer.json
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
|
||||||
|
// https://github.com/microsoft/vscode-dev-containers/tree/v0.163.1/containers/python-3
|
||||||
|
{
|
||||||
|
"name": "Python 3",
|
||||||
|
"build": {
|
||||||
|
"dockerfile": "Dockerfile",
|
||||||
|
"context": ".."
|
||||||
|
},
|
||||||
|
|
||||||
|
// Set *default* container specific settings.json values on container create.
|
||||||
|
"settings": {
|
||||||
|
"terminal.integrated.shell.linux": "/bin/bash",
|
||||||
|
"python.pythonPath": "/usr/local/bin/python",
|
||||||
|
"python.linting.enabled": true,
|
||||||
|
"python.linting.pylintEnabled": true,
|
||||||
|
"python.formatting.autopep8Path": "/usr/local/py-utils/bin/autopep8",
|
||||||
|
"python.formatting.blackPath": "/usr/local/py-utils/bin/black",
|
||||||
|
"python.formatting.yapfPath": "/usr/local/py-utils/bin/yapf",
|
||||||
|
"python.linting.banditPath": "/usr/local/py-utils/bin/bandit",
|
||||||
|
"python.linting.flake8Path": "/usr/local/py-utils/bin/flake8",
|
||||||
|
"python.linting.mypyPath": "/usr/local/py-utils/bin/mypy",
|
||||||
|
"python.linting.pycodestylePath": "/usr/local/py-utils/bin/pycodestyle",
|
||||||
|
"python.linting.pydocstylePath": "/usr/local/py-utils/bin/pydocstyle",
|
||||||
|
"python.linting.pylintPath": "/usr/local/py-utils/bin/pylint"
|
||||||
|
},
|
||||||
|
|
||||||
|
// Add the IDs of extensions you want installed when the container is created.
|
||||||
|
"extensions": [
|
||||||
|
"ms-python.python"
|
||||||
|
],
|
||||||
|
|
||||||
|
// Use 'postCreateCommand' to run commands after the container is created.
|
||||||
|
"postCreateCommand": "pip3 install -r requirements.txt && python3 setup.py develop"
|
||||||
|
}
|
@ -26,6 +26,13 @@ fixes, etc.
|
|||||||
|
|
||||||
# Developing
|
# Developing
|
||||||
|
|
||||||
|
In order to develop locally, there are two options:
|
||||||
|
|
||||||
|
- Develop using a local installation of Python 3 and setting up a virtual environment
|
||||||
|
- Develop using an automated VSCode Dev Container.
|
||||||
|
|
||||||
|
## Develop using local Python installation
|
||||||
|
|
||||||
[Create and activate a Python 3 virtual environment.](https://docs.python.org/3/tutorial/venv.html)
|
[Create and activate a Python 3 virtual environment.](https://docs.python.org/3/tutorial/venv.html)
|
||||||
|
|
||||||
Install `The Fuck` for development:
|
Install `The Fuck` for development:
|
||||||
@ -59,3 +66,27 @@ For sending package to pypi:
|
|||||||
sudo apt-get install pandoc
|
sudo apt-get install pandoc
|
||||||
./release.py
|
./release.py
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Develop using Dev Container
|
||||||
|
|
||||||
|
To make local development easier a [VSCode Devcontainer](https://code.visualstudio.com/docs/remote/remote-overview) is included with this repository. This will allows you to spin up a Docker container with all the necessary prerequisites for this project pre-installed ready to go, no local Python install/setup required.
|
||||||
|
|
||||||
|
### Prerequisites
|
||||||
|
|
||||||
|
To use the container you require:
|
||||||
|
- [Docker](https://www.docker.com/products/docker-desktop)
|
||||||
|
- [VSCode](https://code.visualstudio.com/)
|
||||||
|
- [VSCode Remote Development Extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack)
|
||||||
|
- [Windows Users Only]: [Installation of WSL2 and configuration of Docker to use it](https://docs.docker.com/docker-for-windows/wsl/)
|
||||||
|
|
||||||
|
Full notes about [installation are here](https://code.visualstudio.com/docs/remote/containers#_installation)
|
||||||
|
|
||||||
|
### Running the container
|
||||||
|
|
||||||
|
Assuming you have the prerequisites:
|
||||||
|
|
||||||
|
1. Open VSCode
|
||||||
|
1. Open command palette (CMD+SHIFT+P (mac) or CTRL+SHIFT+P (windows))
|
||||||
|
1. Select `Remote-Containers: Reopen in Container`.
|
||||||
|
1. Container will be built, install all pip requirements and your VSCode will mount into it automagically.
|
||||||
|
1. Your VSCode and container now essentially become a throw away environment.
|
Loading…
x
Reference in New Issue
Block a user