Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature/dev containers and vscode launch config #609

Merged
merged 1 commit into from
Oct 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Use the official Python 3.12 slim image
FROM python:3.12-slim

# Create a non-root user and a directory for the application
RUN useradd -m appuser && \
mkdir /app && \
chown appuser:appuser /app

# Set the working directory
WORKDIR /app

# Set environment variables in a single step
ENV LC_ALL=C.UTF-8 \
LANG=C.UTF-8 \
PYTHONPATH="/app"

# Install necessary dependencies, clean up after installation to reduce image size
RUN apt-get update && \
apt-get -y install docker.io jq git && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

# Copy project files into the container (relative to the build context)
COPY . /app/

# Expose port 49152
EXPOSE 49152

# Switch to the non-root user for security reasons
USER appuser
18 changes: 18 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"name": "Safety-CLI Dev Container",
"build": {
"dockerfile": "Dockerfile",
"context": "..",
"args": {
"SAFETY_VERSION": "DEV"
}
},
"extensions": [
"ms-python.python",
"ms-python.vscode-pylance",
"ms-python.debugpy"
],
"postCreateCommand": "pip install -r test_requirements.txt && pip install ruff requests pre-commit",
SafetyQuincyF marked this conversation as resolved.
Show resolved Hide resolved
"remoteUser": "root",
"workspaceFolder": "/workspaces/safety",
}
192 changes: 192 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,192 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Safety Auth Login",
"type": "debugpy",
"request": "launch",
"module": "safety",
"args": [
"auth"
],
"console": "integratedTerminal"
},
{
"name": "Safety Auth Logout",
"type": "debugpy",
"request": "launch",
"module": "safety",
"args": [
"auth",
"logout"
],
"console": "integratedTerminal"
},
{
"name": "Safety Scan",
"type": "debugpy",
"request": "launch",
"module": "safety",
"args": [
"scan"
],
"console": "integratedTerminal"
},
{
"name": "Safety Scan --detailed-output",
"type": "debugpy",
"request": "launch",
"module": "safety",
"args": [
"scan",
"--detailed-output"
],
"console": "integratedTerminal"
},
{
"name": "Safety Scan --debug",
"type": "debugpy",
"request": "launch",
"module": "safety",
"args": [
"--debug",
"scan"
],
"console": "integratedTerminal"
},
{
"name": "Safety Scan --disable-optional-telemetry",
"type": "debugpy",
"request": "launch",
"module": "safety",
"args": [
"--disable-optional-telemetry",
"scan"
],
"console": "integratedTerminal"
},
{
"name": "Safety Scan --output json",
"type": "debugpy",
"request": "launch",
"module": "safety",
"args": [
"scan",
"--output",
"json",
"--output-file",
"test.json"
],
"console": "integratedTerminal"
},
{
"name": "Safety Check",
"type": "debugpy",
"request": "launch",
"module": "safety",
SafetyQuincyF marked this conversation as resolved.
Show resolved Hide resolved
"args": [
"check"
],
"console": "integratedTerminal"
},
{
"name": "Safety Check --debug",
"type": "debugpy",
"request": "launch",
"module": "safety",
"args": [
"check",
"--debug"
],
"console": "integratedTerminal"
},
{
"name": "Run All Tests",
"type": "debugpy",
"request": "launch",
"module": "pytest",
"args": [],
"console": "integratedTerminal"
},
{
"name": "Run test_render.py",
"type": "debugpy",
"request": "launch",
"module": "pytest",
"args": [
"./tests/scan/test_render.py"
],
"console": "integratedTerminal"
},
{
"name": "Run test_cli.py",
"type": "debugpy",
"request": "launch",
"module": "pytest",
"args": [
"tests/test_cli.py"
],
"console": "integratedTerminal"
},
{
"name": "Run test_db.py",
"type": "debugpy",
"request": "launch",
"module": "pytest",
"args": [
"tests/test_db.py"
],
"console": "integratedTerminal"
},
{
"name": "Run test_output_utils.py",
"type": "debugpy",
"request": "launch",
"module": "pytest",
"args": [
"tests/test_output_utils.py"
],
"console": "integratedTerminal"
},
{
"name": "Run test_policy_file.py",
"type": "debugpy",
"request": "launch",
SafetyQuincyF marked this conversation as resolved.
Show resolved Hide resolved
"module": "pytest",
"args": [
"tests/test_policy_file.py"
],
"console": "integratedTerminal"
},
{
"name": "Run test_util.py",
"type": "debugpy",
"request": "launch",
"module": "pytest",
"args": [
"tests/test_util.py"
],
"console": "integratedTerminal"
},
{
"name": "Run test_safety.py",
"type": "debugpy",
"request": "launch",
"module": "pytest",
"args": [
"tests/test_safety.py"
],
"console": "integratedTerminal"
},
{
"name": "Run test_models.py",
"type": "debugpy",
"request": "launch",
"module": "pytest",
"args": [
"tests/test_models.py"
],
"console": "integratedTerminal"
}
]
}
Loading