Skip to content
This repository was archived by the owner on Dec 12, 2024. It is now read-only.

Commit bcc446a

Browse files
committed
add extra:gcp container
1 parent 0cd7dcf commit bcc446a

File tree

2 files changed

+358
-0
lines changed

2 files changed

+358
-0
lines changed

.devcontainer/gcp/Dockerfile

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
FROM ghcr.io/pulumi/devcontainer:extra
2+
3+
##################################################################################
4+
# Install Google Cloud SDK
5+
6+
ENV CLOUDSDK_INSTALL_DIR /usr/local/gcloud/
7+
ENV PATH $PATH:/usr/local/gcloud/google-cloud-sdk/bin
8+
9+
USER root
10+
RUN echo \
11+
&& export ARCH=$(uname -m | awk '{ if ($1 == "x86_64") print "amd64"; else if ($1 == "aarch64" || $1 == "arm64") print "arm64"; else print "unknown" }') \
12+
&& export NAME="gcloud" \
13+
&& export TEST="${NAME} version" \
14+
&& export PKG="google-cloud-sdk.tar.gz" \
15+
&& export URL="https://dl.google.com/dl/cloudsdk/release/${PKG}" \
16+
&& export DIR="/usr/local/gcloud" \
17+
&& echo "---------------------------------------------------------"\
18+
&& echo "INFO[${NAME}] Installed:" \
19+
&& echo "INFO[${NAME}] Command: ${NAME}" \
20+
&& echo "INFO[${NAME}] Package: ${PKG}" \
21+
&& echo "INFO[${NAME}] Architecture: ${ARCH}" \
22+
&& echo "INFO[${NAME}] Source: ${URL}" \
23+
&& echo "---------------------------------------------------------"\
24+
&& mkdir -p ${DIR} \
25+
&& ${curl} ${URL} | tar xzvf - --directory ${DIR} \
26+
&& /usr/local/gcloud/google-cloud-sdk/install.sh -q \
27+
&& ${dir_clean} \
28+
&& ${TEST} \
29+
&& echo
30+
USER vscode
Lines changed: 328 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,328 @@
1+
{
2+
"name": "devcontainer-extra-gcp",
3+
"remoteUser": "vscode",
4+
"dockerFile": "Dockerfile",
5+
"init": true,
6+
"runArgs": [],
7+
"privileged": true,
8+
"overrideCommand": false,
9+
"updateRemoteUserUID": true,
10+
"shutdownAction": "stopContainer",
11+
"securityOpt": ["seccomp=unconfined"],
12+
"features": {
13+
"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {}
14+
},
15+
"mounts": ["source=dind-var-lib-docker,target=/var/lib/docker,type=volume"],
16+
"postCreateCommand": "devcontainer-links",
17+
//"workspaceFolder": "/workspaces/devcontainer",
18+
//"workspaceMount": "source=.,target=/home/vscode/devcontainer,type=bind,consistency=cached",
19+
//"workspaceFolder": "/home/vscode/devcontainer",
20+
"forwardPorts": [1313, 2222, 6000, 7681, 8080],
21+
"customizations": {
22+
"vscode": {
23+
"settings": {
24+
"telemetry.enableTelemetry": "off",
25+
"initializeCommand": "echo 'Initializing...'",
26+
"postCreateCommand": "echo 'Post create...'",
27+
"postStartCommand": "echo 'Post start...'",
28+
"postAttachCommand": "echo 'Post attach...'",
29+
"window": {
30+
"titleBarStyle": "custom",
31+
"title": "${localWorkspaceFolderBasename}${separator}${containerName}${separator}${profileName}${separator}${activeEditorShort}"
32+
},
33+
"search": {
34+
"defaultViewMode": "list"
35+
},
36+
"vim": {
37+
"disableExtension": true,
38+
"useSystemClipboard": true,
39+
"useCtrlKeys": true,
40+
"easymotion": true,
41+
"incsearch": true,
42+
"hlsearch": true,
43+
"cursorStylePerMode": {
44+
"normal": "block",
45+
"insert": "line",
46+
"visual": "underline",
47+
"visualline": "underline",
48+
"visualblock": "underline",
49+
"replace": "block"
50+
},
51+
"insertModeKeyBindings": [
52+
{
53+
"before": ["j", "j"],
54+
"after": ["<esc>"]
55+
}
56+
],
57+
"handleKeys": {
58+
"<C-a>": false,
59+
"<C-f>": false
60+
}
61+
},
62+
"extensions.experimental.affinity": {
63+
"vscodevim.vim": 1
64+
},
65+
"zenmode": {
66+
"toggle": true,
67+
"hideTabs": false,
68+
"fullScreen": true,
69+
"hideMinimap": true,
70+
"centerLayout": false,
71+
"hideStatusBar": false,
72+
"hideActivityBar": false,
73+
"hideLineNumbers": false,
74+
"silentNotifications": true,
75+
"hideLineDecorations": false,
76+
"hideCursorInOverviewRuler": true
77+
},
78+
"editor": {
79+
"tabSize": 4,
80+
"fontSize": 14,
81+
"autoSave": "onFocusChange",
82+
"wordWrap": "off",
83+
"showTabs": true,
84+
"showIcons": true,
85+
"tabSizing": "shrink",
86+
"lineHeight": 20,
87+
"autoIndent": true,
88+
"lineNumbers": "relative",
89+
"formatOnSave": true,
90+
"insertSpaces": true,
91+
"tabScrolling": "auto",
92+
//"tabFocusMode": false,
93+
//"tabMovesFocus": false,
94+
"tabCompletion": "on",
95+
"tabDecoration": true,
96+
"fontLigatures": true,
97+
"enablePreview": true,
98+
"startupEditor": "readme",
99+
"tabCloseButton": "right",
100+
"minimap.enabled": false,
101+
"openPositioning": "right",
102+
"restoreViewState": true,
103+
"renderWhitespace": "all",
104+
"suggestSelection": "first",
105+
"closeOnFileDelete": true,
106+
"autoClosingQuotes": "always",
107+
"snippetSuggestions": "top",
108+
"autoClosingBrackets": "always",
109+
"tabHistoryNavigation": true,
110+
"quickSuggestionsDelay": 50,
111+
"autoImportCompletions": true,
112+
"scrollBeyondLastLine": true,
113+
"highlightModifiedTabs": true,
114+
"inlineSuggest.enabled": true,
115+
"parameterHints.enabled": true,
116+
"trimTrailingWhitespace": true,
117+
"lineHighlightBackground": "#30BFBF",
118+
"highlightActiveIndentGuide": true,
119+
"fontFamily": "'FiraMono Nerd Font Mono', monospace",
120+
"gotoLocation": {
121+
"multipleReferences": "goto",
122+
"multipleDefinitions": "goto",
123+
"multipleDeclarations": "goto",
124+
"multipleImplementations": "goto",
125+
"multipleTypeDefinitions": "goto"
126+
},
127+
"scrollbar": {
128+
"alwaysConsumeMouseWheel": true
129+
},
130+
"bracketPairColorization": {
131+
"enabled": true
132+
}
133+
},
134+
"files": {
135+
"encoding": "utf8",
136+
"autoSave": "onFocusChange",
137+
"trimFinalNewlines": true,
138+
"insertFinalNewline": true,
139+
"trimTrailingWhitespace": true
140+
},
141+
"git": {
142+
"enabled": true,
143+
"autofetch": true,
144+
"autoStash": true,
145+
"autorefresh": true,
146+
"gitProtocol": "https",
147+
"ignoreSubmodules": true,
148+
"enableSmartCommit": true,
149+
"ignoreLegacyWarning": true,
150+
"autoRepositoryDetection": "openEditors",
151+
"defaultCloneParentDirectory": "/home/vscode",
152+
"scanRepositories": ["/home/vscode", "/workspaces"],
153+
"path": "/usr/local/bin/git"
154+
},
155+
"github.copilot": {
156+
"enable": {
157+
"*": false,
158+
"markdown": false,
159+
"plaintext": false
160+
}
161+
},
162+
"go": {
163+
"testTags": "all",
164+
"vetOnSave": "off",
165+
"buildTags": "all",
166+
"lintOnSave": "off",
167+
"testOnSave": "off",
168+
"buildOnSave": "off",
169+
"formatTool": "goimports",
170+
"testEnvVars": {
171+
"GOFLAGS": "-count=1"
172+
},
173+
"generateTestsFlags": ["-count=1"]
174+
},
175+
"terminal": {
176+
"integrated": {
177+
//"cwd": "/home/vscode/devcontainer",
178+
"fontSize": 14,
179+
"scrollback": 10000,
180+
"cursorStyle": "outline",
181+
"cursorBlinking": true,
182+
"copyOnSelection": true,
183+
"sendKeybindingsToShell": false,
184+
"cursorStyleInactive": "line",
185+
"fontFamily": "FiraMono Nerd Font Mono",
186+
"commandsToSkipShell": [],
187+
"scrollbar": {
188+
"alwaysConsumeMouseWheel": true
189+
},
190+
"shell": {
191+
"linux": "/usr/bin/bash"
192+
}
193+
}
194+
},
195+
"vs-kubernetes": {
196+
"vs-kubernetes.namespace": "*",
197+
"vs-kubernetes.outputFormat": "yaml",
198+
"vs-kubernetes.helm-path": "/usr/local/bin/helm",
199+
"vs-kubernetes.kubeconfig": "/home/vscode/.kube/config",
200+
"vs-kubernetes.kubectl-path": "/usr/local/bin/kubectl",
201+
"vs-kubernetes.knownKubeconfigs": [
202+
"/workspaces/*/.kube/config",
203+
"/home/vscode/*/.kube/config",
204+
"/home/vscode/.kube/config"
205+
]
206+
},
207+
"remote": {
208+
"restoreForwardedPorts": true,
209+
"localPortHost": "127.0.0.1"
210+
},
211+
"2gua.rainbow-brackets": true,
212+
"indentRainbow": {
213+
"indicatorStyle": "light",
214+
"colorOnWhiteSpaceOnly": true,
215+
"lightIndicatorStyleLineWidth": 12,
216+
"ignoreEmptyLines": true,
217+
"errorColor": "rgba(255, 20, 147, 0.3)", // Bright Pink for errors
218+
"tabmixColor": "rgba(128, 32, 96, 0.3)", // Purple for mixed tabs and spaces
219+
"colors": [
220+
"rgba(50, 150, 250, 0.1)", // Bright Blue
221+
"rgba(200, 50, 250, 0.1)", // Purple
222+
"rgba(50, 250, 150, 0.1)", // Neon Green
223+
"rgba(250, 50, 150, 0.1)", // Pink
224+
"rgba(50, 200, 250, 0.1)", // Lighter Blue
225+
"rgba(150, 50, 250, 0.1)", // Darker Purple
226+
"rgba(50, 250, 200, 0.1)", // Brighter Green
227+
"rgba(250, 150, 50, 0.1)" // Orange
228+
],
229+
"ignoreErrorLanguages": [
230+
"haskell",
231+
"markdown",
232+
"plaintext",
233+
"shellscript",
234+
"dockerfile",
235+
"plaintext"
236+
]
237+
},
238+
"workbench": {
239+
"colorTheme": "Cyberpunk",
240+
"startupEditor": "readme",
241+
"action.terminal.focusNext": {
242+
"key": "ctrl+shift+down",
243+
"mac": "cmd+shift+down"
244+
}
245+
},
246+
"autoOpenPreviewPanel.openPreviewToTheSide": false,
247+
"explorer.openEditors.visible": 1,
248+
"explorer": {
249+
"openEditors": {
250+
"visible": 1
251+
},
252+
"autoRevealExclude": {
253+
"**/.git/objects/**": true,
254+
"**/.git/subtree-cache/**": true,
255+
"**/node_modules/**": true
256+
},
257+
"autoReveal": true,
258+
"sortOrder": "filesFirst"
259+
}
260+
},
261+
"[makefile]": {
262+
"editor.insertSpaces": false,
263+
"editor.renderWhitespace": "selection"
264+
},
265+
"[yaml]": {
266+
"editor": {
267+
"trimTrailingWhitespace": true,
268+
"insertFinalNewline": true,
269+
"wordWrap": "off",
270+
"lineNumbers": "relative",
271+
"renderWhitespace": "all",
272+
"autoSave": "onFocusChange",
273+
"formatOnSave": true,
274+
"insertSpaces": true,
275+
"tabSize": 2,
276+
"minimap.enabled": true,
277+
"scrollBeyondLastLine": true,
278+
"scrollbar": {
279+
"alwaysConsumeMouseWheel": true
280+
}
281+
}
282+
},
283+
"[markdown]": {
284+
"editor": {
285+
"tabSize": 4,
286+
"wordWrap": "on",
287+
"autoSave": "onFocusChange",
288+
"lineNumbers": "relative",
289+
"formatOnSave": true,
290+
"insertSpaces": true,
291+
"minimap.enabled": false,
292+
"renderWhitespace": "all",
293+
"insertFinalNewline": true,
294+
"scrollBeyondLastLine": true,
295+
"trimTrailingWhitespace": false,
296+
"scrollbar": {
297+
"alwaysConsumeMouseWheel": true
298+
}
299+
}
300+
},
301+
"extensions": [
302+
"golang.go",
303+
"vscodevim.vim",
304+
"github.copilot",
305+
"max-ss.cyberpunk",
306+
"ms-python.python",
307+
"redhat.vscode-yaml",
308+
"esbenp.prettier-vscode",
309+
"oderwat.indent-rainbow",
310+
"okteto.kubernetes-context",
311+
"ms-vsliveshare.vsliveshare",
312+
"chadonsom.auto-view-readme",
313+
"ms-azuretools.vscode-docker",
314+
"github.vscode-github-actions",
315+
"ms-kubernetes-tools.kind-vscode",
316+
"ms-vscode.vscode-typescript-next",
317+
"github.vscode-pull-request-github",
318+
"matt-rudge.auto-open-preview-panel",
319+
"ms-vscode-remote.remote-containers",
320+
"ms-edgedevtools.vscode-edge-devtools",
321+
"bierner.markdown-preview-github-styles",
322+
"visualstudioexptteam.vscodeintellicode",
323+
"bierner.markdown-preview-github-styles",
324+
"ms-kubernetes-tools.vscode-kubernetes-tools"
325+
]
326+
}
327+
}
328+
}

0 commit comments

Comments
 (0)