diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..05b4339 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,47 @@ +{ + "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" + } + ], + "postCreateCommand": "pants run cmd/greeter_en" +} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..83281b5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ +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 +# install Pants +COPY get-pants.sh /tmp/get-pants.sh +RUN bash /tmp/get-pants.sh --bin-dir /usr/local/bin && \ + export PATH="/usr/local/bin:$PATH" && \ + git clone --single-branch --depth 1 https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh && \ + cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc && \ + chsh -s /bin/zsh +CMD [ "/bin/zsh" ] \ No newline at end of file