All Projects → mkenney → docker-npm

mkenney / docker-npm

Licence: MIT license
npm, yarn, node, npx, bower, grunt, gulp, generate-md - build and dev tools.

Programming Languages

Dockerfile
14818 projects
shell
77523 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to docker-npm

generator-craftskeleton
Starterkit for Craft CMS 2.x (Multi-Environment Configs with HeartyConfig, Gulp, and Bower for Dependencie-Management)
Stars: ✭ 14 (-73.58%)
Mutual labels:  gulp, bower
igni-core
UNSUPPORTED: An easy to use & featherlight CMS that shortcuts the bootstrapping of backend PHP + MySQL based projects. Developed in Laravel, it uses the latest PHP coding standards and library versions.
Stars: ✭ 13 (-75.47%)
Mutual labels:  gulp, bower
grunt-frontend-boilerplate
🔒 Basic boilerplate to start a webapp project with Angular.js, Bootstrap and Grunt
Stars: ✭ 14 (-73.58%)
Mutual labels:  grunt, yarn
Barekit
A bare minimum responsive framework
Stars: ✭ 201 (+279.25%)
Mutual labels:  gulp, grunt
web-starter-kit-gulp
Starter kit for automated front-end web development using Gulp, NPM, Bower, Babel, Sass, and Pug.
Stars: ✭ 35 (-33.96%)
Mutual labels:  gulp, bower
feweekly
⭐ 前端周刊,让你在前端领域跟上时代的脚步,深度和广度不断精进
Stars: ✭ 34 (-35.85%)
Mutual labels:  gulp, grunt
project-manager-laravel
Project manager system - PHP and AngularJS
Stars: ✭ 17 (-67.92%)
Mutual labels:  gulp, bower
Grunt2gulp.js
Converts Grunt task files, gruntfile.js, to Gulp files.
Stars: ✭ 64 (+20.75%)
Mutual labels:  gulp, grunt
jscrambler
Monorepo of Jscrambler's Javascript Client and Integrations
Stars: ✭ 118 (+122.64%)
Mutual labels:  gulp, grunt
actions-js-build
GitHub Actions for running Javascript build tools and committing file changes
Stars: ✭ 46 (-13.21%)
Mutual labels:  gulp, grunt
Gulp Webpack Starter
Gulp Webpack Starter - fast static website builder. The starter uses gulp toolkit and webpack bundler. Download to get an awesome development experience!
Stars: ✭ 199 (+275.47%)
Mutual labels:  gulp, yarn
generator-sf
Yeoman generator that scaffolds out a Symfony PHP app including Browsersync, various CSS preprocessors, jspm, webpack, browserify and Service Worker
Stars: ✭ 14 (-73.58%)
Mutual labels:  gulp, grunt
Ignition Go
Bootstrap4 /Codeigniter 3 Modular (HMVC) App Building Framework - to build enterprise class web applications... Versions: CodeIgniter 3.1.9 AdminLTE 3.4 Bootstrap 4.5.0
Stars: ✭ 166 (+213.21%)
Mutual labels:  gulp, bower
Forward-Framework
A killer WordPress theme framework built using underscores, gulp, sass, bourbon neat, bower & browsersync.
Stars: ✭ 23 (-56.6%)
Mutual labels:  gulp, yarn
Sass Recipes
Sass things that I do all the time or should remember to do because googling tutorials gets old
Stars: ✭ 156 (+194.34%)
Mutual labels:  gulp, yarn
sage-starter
The best starter theme with a modern front-end development workflow. Based on Sage, HTML5 Boilerplate, gulp, Bower, and Bootstrap.
Stars: ✭ 42 (-20.75%)
Mutual labels:  gulp, bower
Generator Fountain Webapp
Yeoman 'fountain' generator to start a webapp
Stars: ✭ 985 (+1758.49%)
Mutual labels:  gulp, bower
Phplint
Lightning fast concurrent PHP linter for Node.js, Grunt & Gulp! ⚡️
Stars: ✭ 62 (+16.98%)
Mutual labels:  gulp, grunt
js-stack-from-scratch
🌺 Russian translation of "JavaScript Stack from Scratch" from the React-Theming developers https://github.com/sm-react/react-theming
Stars: ✭ 394 (+643.4%)
Mutual labels:  gulp, yarn
rdm-app
Code for the rdm.openlighting.org site
Stars: ✭ 17 (-67.92%)
Mutual labels:  grunt, bower

docker-badges.webbedlam.com

npm and related build and dev tools

MIT License stability-mature Build status Github issues Github pull requests

Please feel free to create an issue or open a pull request if you need support or would like to contribute.

Portable node, package managers and build tools

Announcements

v1.1.0 released

2019-02-25

  • Added node v11 images and tests
  • Updated the shell scripts to default to node-11-alpine image (you can always use the DOCKER_NPM_TAG variable to use another image).

Tagged Images

Images are tagged according to the installed Node version and operating system. Package versions are not pinned, instead npm is executed to install current versions of each package. If stability issues aries, I will pin package versions in a Dockerfile for that Node/OS version and create a image tagged as stable based on it. Please let me know if you run into this situation.

Alpine

alpine, latest Dockerfile

Based on node:alpine. This image should be considered under development and may not be as stable as versioned images.

node-11-alpine Dockerfile

Based on node:11-alpine.

node-10-alpine Dockerfile

Based on node:10-alpine.

node-9-alpine Dockerfile

Based on node:9-alpine.

node-8-alpine Dockerfile

Based on node:8-alpine.

node-7-alpine Dockerfile

Based on node:7-alpine.

node-6-alpine Dockerfile

Based on node:6-alpine.

Debian

debian Dockerfile

Based on node:latest. This image should be considered under development and may not be as stable as versioned images.

node-11-debian Dockerfile

Based on node:11-stretch.

node-10-debian Dockerfile

Based on node:10-wheezy.

node-9-debian Dockerfile

Based on node:9-wheezy.

node-8-debian Dockerfile

Based on node:8-wheezy.

node-7-debian Dockerfile

Based onnode:7-wheezy.

Other Images

node-7.7-alpine, 7.0-alpine Dockerfile

stability-locked Based on node:7.7-alpine, it node v7.7 compiled from source. The 7.0-alpine tagged version was accidentally upgraded over time to v7.7 and will remain so for the stability of existing users.

node-6.9-alpine, 6.9-alpine Dockerfile

stability-locked Based on alpine:3.4 with node v6.9 compiled from source.

node-7.0-debian, 7.0-debian Dockerfile

stability-locked Based onnode:7.0-wheezy.

node-6.9-debian, 6.9-debian Dockerfile

stability-locked Based onnode:6.9-wheezy.

About

Essentially, this is just a set of shell scripts that manage a Node.js docker image. The docker image includes a script (run-as-user) that allows commands to write files as either the current user or the owner/group of the current directory, which the shell scripts take advantage of to make sure files are created with your preferred permissions rather than root.

Images & Wrapper Scripts

The images contain the latest stable bower, generate-md, grunt, gulp, node, npm, npx, and yarn, binaries for node. When using the shell scripts available in the source repository, the current directory is mounted into /src inside the container and a wrapper script executes the specified command as a user who's uid and gid matches those properties on that directory. This way any output is written as the directory owner/group instead of root or a random user.

The included run-as-user script has three methods of determining which uid and gid to execute as:

  • By default, it will execute with a uid and gid that matches the current directory (the one that gets mounted into /src).

  • In order to take advantage of public key authentication when installing packages from private repositories, all the wrapper scripts will attempt to mount your ~/.ssh directory into the container. When that is successful, the script will run as the uid and gid of the owner of ~/.ssh (you).

    Most software that takes advantage of public key authentication protocols do so over SSH, and by default, send the current user name as the login name. Because this process is executing out of a segregated container, it knows nothing about the current user's name and will instead try to login as a user named dev. In order to work around this, you need to create a SSH configuration that specifies the correct username.

    In your ~/.ssh folder create a file called config. In that file you need to specify the correct username. For example, to specify your login name for all hosts:

    Host *
        User mkenney
    

    You can easily be more explicit as well, specifying by host or with additional wildcards. Google is your friend.

    Host github.com
        User mkenney
    
  • You can also explicitly specify the uid and gid to use at runtime by defining the PUID and PGID environment variables when executing the container, this is quite useful in automated build systems:

    docker run \
        --rm \
        -it \
        -v $(pwd):/src:rw \
        -e "PUID=<user id>" \
        -e "PGID=<group id>" \
        mkenney/npm:latest <commands>
    

The included wrapper scripts default to the latest node version and image tag I feel is stable, I will update the default tag as updates are released or stability issues warrant (node-10-alpine at the moment).

To specify a different image, you can define the image tag in your environment which will set a new default (you probably want to define this in your .bashrc or similar profile script):

export DOCKER_NPM_TAG=node-6.9-alpine

or you can easily specify it at runtime whenever necessary, for example:

$ DOCKER_NPM_TAG=node-6.9-alpine bower install

If you would to see like additional node modules and/or wrapper scripts added to this project please feel free to create an issue or open a pull request.

Installation

This assumes that you already have Docker installed. A running docker daemon is required. You probably want to be able to run docker commands without sudo, but even if you excute the scripts with sudo files will be written with the appropriate uid and gid.

Wrapper scripts for several commands are available in the source repository:

Installation is just a matter of putting them somewhere in your path and making them executable. An installation script is available and can be executed with a shell curl+sh -s command. Simply pass in your command arguments normally.

Usage
  install.sh COMMAND [TAG [PREFIX]]

Synopsys
  Install a mkenney/npm container execution script locally

Options
  COMMAND  - Required, the name of the command to install (bower, gulp, npm, etc.)
  TAG      - Optional, the image tag to use. Default 'latest'
  PREFIX   - Optional, the location to install the command script. Default '$HOME/bin'

Examples
  $ curl -L https://raw.githubusercontent.com/mkenney/docker-npm/master/bin/install.sh | bash -s gulp node-10-alpine $HOME/bin
  $ bash ./install.sh gulp node-10-alpine $HOME/bin
Updating
  • [command] self-update

    Each of the scripts have a self-update command which pulls down the latest docker image (which all the scripts share) and then updates the shell script itself. If you don't have write permissions on the shell script you'll get a permissions error, you can run the self-update command with sudo if necessary.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].