diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..39c28cc --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,46 @@ +{ + "containerEnv": { + "TZ": "" + }, + "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}", + "build": { + "dockerfile": "../Dockerfile", + "context": ".." + }, + "customizations": { + "vscode": { + "extensions": [ + "bajdzis.vscode-database", // Supports connections to mysql or postgres, over SSL, socked + "davidanson.vscode-markdownlint", // Markdown linting + "eamodio.gitlens", // IDE Git information + "github.copilot", // AI code completion + "github.vscode-pull-request-github", // Github interaction + "golang.go", // Go language support + "Gruntfuggly.todo-tree", // Highlights TODO comments + "IBM.output-colorizer", // Colorize your output/test logs + "mohsen1.prettify-json", // Prettify JSON data + "ms-azuretools.vscode-docker", // Docker integration and linting + "nefrob.vscode-just-syntax", // Justfile syntax highlighting + "quicktype.quicktype", // Paste JSON as code + "redhat.vscode-yaml", // Kubernetes, Drone syntax highlighting + "shardulm94.trailing-spaces", // Show trailing spaces + "stkb.rewrap", // rewrap comments after n characters on one line + "vscode-icons-team.vscode-icons" // Better file extension icons + ] + } + }, + "forwardPorts": [ + 3000 + ], + "initializeCommand": "bash -c 'for i in $HOME/.inputrc; do [ -f $i ] || touch $i; done'", + "mounts": [ + "source=${localEnv:HOME}/.ssh,target=/root/.ssh,type=bind", + "source=${localEnv:HOME}/.inputrc,target=/root/.inputrc,type=bind", + // Docker socket to access the host Docker server + { + "source": "/var/run/docker.sock", + "target": "/var/run/docker.sock", + "type": "bind" + } + ] +} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..ca6b9e0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,18 @@ +FROM docker.io/golang:1.24.9-trixie + +# install dependencies +RUN apt-get update && \ + apt-get install -y \ + build-essential \ + zsh \ + && rm -rf /var/lib/apt/lists/* + +# install just +RUN curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to /usr/local/bin + +# setup zsh and oh-my-zsh +RUN git clone --single-branch --depth 1 https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh +RUN cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc +RUN chsh -s /bin/zsh + +CMD [ "/bin/zsh" ] diff --git a/go.mod b/go.mod index 0e3daff..f4bbfe0 100644 --- a/go.mod +++ b/go.mod @@ -3,9 +3,9 @@ module github.com/pantsbuild/example-golang -go 1.17 +go 1.24 require ( - github.com/google/uuid v1.3.0 - github.com/spf13/pflag v1.0.5 + github.com/google/uuid v1.6.0 + github.com/spf13/pflag v1.0.10 ) diff --git a/go.sum b/go.sum index 1b2a722..ea2f566 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,4 @@ -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= -github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= -github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= +github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=