mirror of
				https://github.com/nvm-sh/nvm.git
				synced 2025-11-04 06:57:12 +00:00 
			
		
		
		
	Created improved DevContainer using vscode
This commit is contained in:
		
							parent
							
								
									6915d4460d
								
							
						
					
					
						commit
						18cde996c3
					
				
							
								
								
									
										74
									
								
								.devcontainer/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								.devcontainer/Dockerfile
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,74 @@
 | 
			
		||||
# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.183.0/containers/ubuntu/.devcontainer/base.Dockerfile
 | 
			
		||||
 | 
			
		||||
# [Choice] Ubuntu version: bionic, focal
 | 
			
		||||
ARG VARIANT="focal"
 | 
			
		||||
FROM mcr.microsoft.com/vscode/devcontainers/base:0-${VARIANT}
 | 
			
		||||
LABEL name="nvm-dev-conteriner"
 | 
			
		||||
LABEL version="latest"
 | 
			
		||||
 | 
			
		||||
# Set the SHELL to bash with pipefail option
 | 
			
		||||
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
 | 
			
		||||
 | 
			
		||||
# Prevent dialog during apt install
 | 
			
		||||
ENV DEBIAN_FRONTEND noninteractive
 | 
			
		||||
 | 
			
		||||
# ShellCheck version
 | 
			
		||||
ENV SHELLCHECK_VERSION=0.7.0
 | 
			
		||||
 | 
			
		||||
# Install apt packages
 | 
			
		||||
RUN apt-get update         && \
 | 
			
		||||
    apt-get upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"  && \
 | 
			
		||||
    apt-get install -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"     \
 | 
			
		||||
        coreutils             \
 | 
			
		||||
        util-linux            \
 | 
			
		||||
        bsdutils              \
 | 
			
		||||
        file                  \
 | 
			
		||||
        openssl               \
 | 
			
		||||
        libssl-dev            \
 | 
			
		||||
        locales               \
 | 
			
		||||
        ca-certificates       \
 | 
			
		||||
        ssh                   \
 | 
			
		||||
        wget                  \
 | 
			
		||||
        patch                 \
 | 
			
		||||
        sudo                  \
 | 
			
		||||
        htop                  \
 | 
			
		||||
        dstat                 \
 | 
			
		||||
        vim                   \
 | 
			
		||||
        tmux                  \
 | 
			
		||||
        curl                  \
 | 
			
		||||
        git                   \
 | 
			
		||||
        jq                    \
 | 
			
		||||
        zsh                   \
 | 
			
		||||
        ksh                   \
 | 
			
		||||
        gcc                   \
 | 
			
		||||
        g++                   \
 | 
			
		||||
        xz-utils              \
 | 
			
		||||
        build-essential       \
 | 
			
		||||
        bash-completion       && \
 | 
			
		||||
    apt-get clean
 | 
			
		||||
 | 
			
		||||
RUN wget https://github.com/koalaman/shellcheck/releases/download/v$SHELLCHECK_VERSION/shellcheck-v$SHELLCHECK_VERSION.linux.x86_64.tar.xz -O- | \
 | 
			
		||||
    tar xJvf - shellcheck-v$SHELLCHECK_VERSION/shellcheck          && \
 | 
			
		||||
    mv shellcheck-v$SHELLCHECK_VERSION/shellcheck /bin             && \
 | 
			
		||||
    rmdir shellcheck-v$SHELLCHECK_VERSION
 | 
			
		||||
 | 
			
		||||
# Set locale
 | 
			
		||||
# Add user "nvm" as non-root user
 | 
			
		||||
# Set sudoer for "nvm"
 | 
			
		||||
RUN locale-gen en_US.UTF-8 \
 | 
			
		||||
    && useradd -ms /bin/bash nvm \
 | 
			
		||||
    && echo 'nvm ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
 | 
			
		||||
 | 
			
		||||
# Switch to user "nvm" from now
 | 
			
		||||
USER nvm
 | 
			
		||||
 | 
			
		||||
# # nvm
 | 
			
		||||
# RUN echo 'export NVM_DIR="\Workspace"' >> "$HOME/.bashrc"
 | 
			
		||||
# RUN echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm' >> "$HOME/.bashrc"
 | 
			
		||||
# RUN echo '[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # This loads nvm bash_completion' >> "$HOME/.bashrc"
 | 
			
		||||
 | 
			
		||||
# # nodejs and tools
 | 
			
		||||
# RUN bash -c 'source $NVM_DIR/nvm.sh && \
 | 
			
		||||
#     nvm install node && \
 | 
			
		||||
#     npm install -g doctoc urchin eclint dockerfile_lint && \
 | 
			
		||||
#     npm install --prefix "$HOME/.nvm/"'
 | 
			
		||||
							
								
								
									
										26
									
								
								.devcontainer/devcontainer.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								.devcontainer/devcontainer.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,26 @@
 | 
			
		||||
// 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.183.0/containers/ubuntu
 | 
			
		||||
{
 | 
			
		||||
	"name": "Ubuntu",
 | 
			
		||||
	"build": {
 | 
			
		||||
		"dockerfile": "Dockerfile",
 | 
			
		||||
		// Update 'VARIANT' to pick an Ubuntu version: focal, bionic
 | 
			
		||||
		"args": { "VARIANT": "bionic" }
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	// Set *default* container specific settings.json values on container create.
 | 
			
		||||
	"settings": {},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	// Add the IDs of extensions you want installed when the container is created.
 | 
			
		||||
	"extensions": [],
 | 
			
		||||
 | 
			
		||||
	// Use 'forwardPorts' to make a list of ports inside the container available locally.
 | 
			
		||||
	// "forwardPorts": [],
 | 
			
		||||
 | 
			
		||||
	// Use 'postCreateCommand' to run commands after the container is created.
 | 
			
		||||
	"postCreateCommand": "bash /workspaces/nvm/.devcontainer/postCreation.sh",
 | 
			
		||||
 | 
			
		||||
	// Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
 | 
			
		||||
	"remoteUser": "nvm"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										14
									
								
								.devcontainer/postCreation.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								.devcontainer/postCreation.sh
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
			
		||||
# # nvm
 | 
			
		||||
 | 
			
		||||
NVM_DIR="/workspaces/nvm"
 | 
			
		||||
echo 'export ${NVM_DIR}' >> "${HOME}/.bashrc"
 | 
			
		||||
echo '[ -s "${NVM_DIR}/nvm.sh" ] && . "${NVM_DIR}/nvm.sh"  # This loads nvm' >> "${HOME}/.bashrc"
 | 
			
		||||
echo '[ -s "${NVM_DIR}/bash_completion" ] && . "${NVM_DIR}/bash_completion" # This loads nvm bash_completion' >> "${HOME}/.bashrc"
 | 
			
		||||
 | 
			
		||||
# nodejs and tools
 | 
			
		||||
source ${NVM_DIR}/nvm.sh
 | 
			
		||||
nvm install node
 | 
			
		||||
npm install -g doctoc urchin eclint dockerfile_lint
 | 
			
		||||
npm install --prefix "${NVM_DIR}"
 | 
			
		||||
 | 
			
		||||
echo hi >> $NVM_DIR/test
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user