-
Notifications
You must be signed in to change notification settings - Fork 28
/
Dockerfile
102 lines (89 loc) · 3.68 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
FROM node:9-wheezy
LABEL org.label-schema.schema-version = 1.0.0 \
org.label-schema.vendor = [email protected] \
org.label-schema.vcs-url = https://github.com/mkenney/docker-npm \
org.label-schema.description = "This image provides node based build tools." \
org.label-schema.name = "NPM" \
org.label-schema.url = http://mkenney.github.io/docker-npm/
ENV TERM=xterm \
NLS_LANG=American_America.AL32UTF8 \
LANG=C.UTF-8 \
LANGUAGE=C.UTF-8 \
LC_ALL=C.UTF-8 \
TIMEZONE=America/Denver
RUN set -x \
&& apt-get -qq update \
&& apt-get install -qqy apt-transport-https apt-utils \
&& apt-get -qq upgrade \
&& apt-get -qq dist-upgrade \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
&& apt-get -qq update \
&& apt-get install -qqy \
acl \
git \
mercurial \
rsync \
subversion \
sudo \
wget \
# Restore a borne-shell compatible default shell
&& rm /bin/sh \
&& ln -s /bin/bash /bin/sh
# install npm packages
RUN set -x \
&& npm install --silent --global \
gulp-cli \
grunt-cli \
bower \
markdown-styles \
npx \
&& curl --compressed -o- -L https://yarnpkg.com/install.sh | sh
##############################################################################
# UTF-8 Locale, timezone
##############################################################################
RUN set -x \
&& apt-get install -qqy locales \
&& locale-gen C.UTF-8 ${UTF8_LOCALE} \
&& dpkg-reconfigure locales \
&& /usr/sbin/update-locale LANG=C.UTF-8 LANGUAGE=C.UTF-8 LC_ALL=C.UTF-8 \
&& export LANG=C.UTF-8 \
&& export LANGUAGE=C.UTF-8 \
&& export LC_ALL=C.UTF-8 \
&& echo $TIMEZONE > /etc/timezone \
&& dpkg-reconfigure -f noninteractive tzdata
##############################################################################
# users
##############################################################################
RUN set -x \
# Configure root account
&& echo "export NLS_LANG=$(echo $NLS_LANG)" >> /root/.bash_profile \
&& echo "export LANG=$(echo $LANG)" >> /root/.bash_profile \
&& echo "export LANGUAGE=$(echo $LANGUAGE)" >> /root/.bash_profile \
&& echo "export LC_ALL=$(echo $LC_ALL)" >> /root/.bash_profile \
&& echo "export TERM=xterm" >> /root/.bash_profile \
&& echo "export PATH=$(echo $PATH)" >> /root/.bash_profile \
&& echo "cd /src" >> /root/.bash_profile \
&& echo "source \$HOME/.bashrc" >> /root/.bash_profile \
# Add a dev user and configure
&& groupadd dev \
&& useradd dev -s /bin/bash -m -g dev \
&& echo "dev:password" | chpasswd \
&& echo "dev ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers \
&& rsync -a /root/ /home/dev/ \
&& chown -R dev:dev /home/dev/ \
&& chmod 0777 /home/dev \
&& chmod -R u+rwX,g+rwX,o+rwX /home/dev \
&& setfacl -R -d -m user::rwx,group::rwx,other::rwx /home/dev
##############################################################################
# ~ fin ~
##############################################################################
RUN set -x \
&& wget -O /run-as-user https://raw.githubusercontent.com/mkenney/docker-scripts/master/container/run-as-user \
&& chmod 0755 /run-as-user \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
VOLUME /src
WORKDIR /src
ENTRYPOINT ["/run-as-user"]
CMD ["/usr/local/bin/npm"]