|
1 |
| -FROM ubuntu:18.04 |
| 1 | +ARG TAG=17.7.1-slim |
2 | 2 |
|
3 |
| -# Inspired on: |
4 |
| -# → https://github.com/Purik/android-studio-docker |
5 |
| -# → https://github.com/Deadolus/android-studio-docker |
| 3 | +FROM node:${TAG} |
6 | 4 |
|
7 | 5 | ARG CONTAINER_USER="node"
|
8 |
| -ARG CONTAINER_UID="1000" |
9 |
| -ARG DISPLAY=":0.0" |
10 |
| -ARG ZSH_THEME="robbyrussell" |
| 6 | +ARG LANGUAGE_CODE="en" |
| 7 | +ARG COUNTRY_CODE="GB" |
| 8 | +ARG ENCODING="UTF-8" |
11 | 9 |
|
12 |
| -# Will not prompt for questions |
13 |
| -ENV DEBIAN_FRONTEND=noninteractive \ |
14 |
| - CONTAINER_USER=node \ |
15 |
| - CONTAINER_UID=1000 \ |
16 |
| - ROOT_CA_DIR=/root-ca/ \ |
17 |
| - PROXY_CA_FILENAME="FirewallProxyCA.crt" \ |
18 |
| - PROXY_CA_PEM="certificates/FirewallProxyCA.crt" \ |
19 |
| - PROXY_CA_NAME="FirewallProxyCA" \ |
20 |
| - DISPLAY=${DISPLAY} \ |
21 |
| - NO_AT_BRIDGE=1 |
| 10 | +ARG LOCALE_STRING="${LANGUAGE_CODE}_${COUNTRY_CODE}" |
| 11 | +ARG LOCALIZATION="${LOCALE_STRING}.${ENCODING}" |
22 | 12 |
|
23 |
| -# NO_AT_BRIDGE=1 |
24 |
| -# Removes DBUS warning that should be only seen by Developer |
25 |
| -# https://bugs.launchpad.net/ubuntu/+source/at-spi2-core/+bug/1193236 |
| 13 | +ARG OH_MY_ZSH_THEME="bira" |
26 | 14 |
|
27 |
| -COPY ./setup ${ROOT_CA_DIR} |
28 |
| - |
29 |
| -RUN apt update && \ |
30 |
| - apt -y upgrade && \ |
| 15 | +RUN apt update && apt -y upgrade && \ |
31 | 16 | apt -y install \
|
32 |
| - locales \ |
33 |
| - tzdata \ |
34 |
| - ca-certificates \ |
35 |
| - inotify-tools \ |
36 |
| - libnss3-tools \ |
37 |
| - curl \ |
38 |
| - git \ |
39 |
| - zsh \ |
40 |
| - unzip \ |
41 |
| - nodejs \ |
42 |
| - npm \ |
43 |
| - libxss1 && \ |
44 |
| - |
45 |
| - locale-gen en_GB.UTF-8 && \ |
46 |
| - dpkg-reconfigure locales && \ |
47 |
| - |
48 |
| - # https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers |
49 |
| - printf "fs.inotify.max_user_watches=524288\n" >> /etc/sysctl.conf && \ |
| 17 | + locales \ |
| 18 | + git \ |
| 19 | + curl \ |
| 20 | + inotify-tools \ |
| 21 | + zsh && \ |
50 | 22 |
|
51 |
| - # add unprivileged user |
52 |
| - useradd -m -u ${CONTAINER_UID} -s /bin/bash ${CONTAINER_USER} && \ |
| 23 | + echo "${LOCALIZATION} ${ENCODING}" > /etc/locale.gen && \ |
| 24 | + locale-gen "${LOCALIZATION}" && \ |
53 | 25 |
|
54 |
| - # Useful when running behind a corporate firewall or a proxy |
55 |
| - cd ${ROOT_CA_DIR} && \ |
56 |
| - ./add-proxy-certificate.sh "${PROXY_CA_PEM}" && \ |
57 |
| - ./add-certificate-to-node-server.sh "/etc/ssl/certs/${PROXY_CA_NAME}.pem" && \ |
| 26 | + # useradd -m -u 1000 -s /usr/bin/zsh "${CONTAINER_USER}" && \ |
58 | 27 |
|
59 |
| - # Install Oh My Zsh for Root and Node user |
60 |
| - bash -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" && \ |
61 |
| - chsh -s /usr/bin/zsh && \ |
62 |
| - cp -R /root/.oh-my-zsh /home/"${CONTAINER_USER}" && \ |
63 |
| - cp /root/.zsh* /home/"${CONTAINER_USER}" && \ |
64 |
| - sed -i "s/\/root/\/home\/${CONTAINER_USER}/g" /home/"${CONTAINER_USER}"/.zshrc && \ |
65 |
| - chown -R "${CONTAINER_USER}":"${CONTAINER_USER}" /home/"${CONTAINER_USER}" && \ |
66 |
| - echo PATH=/opt/android-studio/bin:$PATH >> /home/${CONTAINER_USER}/.bashrc && \ |
67 |
| - echo PATH=/opt/android-studio/bin:$PATH >> /home/${CONTAINER_USER}/.zshrc && \ |
68 |
| - sed -i s/ZSH_THEME=\"robbyrussell\"/ZSH_THEME=\"${ZSH_THEME}\"/g /home/${CONTAINER_USER}/.zshrc && \ |
| 28 | + bash -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" && \ |
69 | 29 |
|
70 |
| - # Install node in a more current version |
71 |
| - curl -sL https://deb.nodesource.com/setup_10.x | bash - && \ |
72 |
| - apt install -y nodejs |
73 |
| - |
74 |
| -ENV LANG=en_GB.UTF-8 \ |
75 |
| - LANGUAGE=en_GB:en \ |
76 |
| - LC_ALL=en_GB.UTF-8 |
| 30 | + cp -v /root/.zshrc /home/"${CONTAINER_USER}"/.zshrc && \ |
| 31 | + cp -rv /root/.oh-my-zsh /home/"${CONTAINER_USER}"/.oh-my-zsh && \ |
| 32 | + sed -i "s/\/root/\/home\/${CONTAINER_USER}/g" /home/"${CONTAINER_USER}"/.zshrc && \ |
| 33 | + sed -i s/ZSH_THEME=\"robbyrussell\"/ZSH_THEME=\"${OH_MY_ZSH_THEME}\"/g /home/${CONTAINER_USER}/.zshrc && \ |
| 34 | + mkdir /home/"${CONTAINER_USER}"/workspace && \ |
| 35 | + chown -R "${CONTAINER_USER}":"${CONTAINER_USER}" /home/"${CONTAINER_USER}" |
77 | 36 |
|
78 | 37 | USER ${CONTAINER_USER}
|
79 | 38 |
|
| 39 | +ENV USER ${CONTAINER_USER} |
| 40 | +ENV LANG "${LOCALIZATION}" |
| 41 | +ENV LANGUAGE "${LOCALE_STRING}:${LANGUAGE_CODE}" |
| 42 | +ENV PATH=/home/${CONTAINER_USER}/.local/bin:${PATH} |
| 43 | +ENV LC_ALL "${LOCALIZATION}" |
| 44 | + |
80 | 45 | WORKDIR /home/${CONTAINER_USER}/workspace
|
81 | 46 |
|
82 | 47 | CMD ["zsh"]
|
0 commit comments