-
Notifications
You must be signed in to change notification settings - Fork 1
/
Dockerfile
145 lines (99 loc) · 4.64 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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
FROM ubuntu:20.04
SHELL ["/bin/bash", "-lc"]
EXPOSE 4200
EXPOSE 4201
EXPOSE 4202
EXPOSE 4203
# #########################################################################################
# Updating Ubuntu packages.
RUN apt-get -y update
RUN apt-get -y install software-properties-common
RUN apt-get -y install dialog apt-utils
RUN apt-get -y -o Dpkg::Options::="--force-confnew" upgrade
RUN add-apt-repository -y ppa:chris-lea/redis-server
RUN apt-get -y update
# #########################################################################################
# Installing SSL/HTTPS utils.
RUN apt-get install -y binutils
RUN apt-get install -y apt-transport-https
# #########################################################################################
# Installing Git
RUN apt-get install -y git
# #########################################################################################
# Install gem bundler for dependencies and ruby dev for local gems.
RUN apt-get install -y ruby-bundler
RUN apt-get install -y ruby-dev
# #########################################################################################
# Redis DB and nginx for web server
RUN apt-get install -y nginx
RUN apt-get install -y redis-server
# #########################################################################################
# Dependency mgmt for ember cli"
RUN apt-get install -y nodejs
RUN apt-get install -y npm
RUN apt-get install -y python
RUN npm install -g npm
# #########################################################################################
# Protect SSH from multiple failed logins."
RUN apt-get install -y fail2ban
# #########################################################################################
# Allow unattended upgrades"
RUN apt-get install -y unattended-upgrades
# #########################################################################################
# Turn unatteded upgrades on."
RUN dpkg-reconfigure -f noninteractive unattended-upgrades
# #########################################################################################
# Create an ares user"
# Ares user password will either be passed in as an arg, or we'll default it
RUN RANDOMPW=$(openssl rand 1000 | strings | grep -io [[:alnum:]] | head -n 16 | tr -d '\n')
RUN PASSWD=${1:-$RANDOMPW}
RUN ENCRYPTEDPW=$(openssl passwd -1 "$PASSWD")
RUN export ARES_USERNAME="ares"
RUN adduser --disabled-password --gecos "" ares
RUN usermod -p "$ENCRYPTEDPW" ares
# Add them to groups
RUN addgroup www
RUN usermod -a -G sudo,www,redis ares
# #########################################################################################
# Give ares user access to www
RUN chown ares /var/www/html
RUN chgrp www /etc/nginx/sites-available/default
RUN chmod g+rwx /etc/nginx/sites-available/default
# #########################################################################################
# RVM needs some libs."
RUN apt-get -y update
RUN apt-get install -y autoconf automake bison libffi-dev libgdbm-dev libncurses5-dev libsqlite3-dev libtool libyaml-dev pkg-config sqlite3 zlib1g-dev libreadline-dev libssl-dev curl gawk
# #########################################################################################
# Set up placeholder volumes
RUN mkdir /ares
RUN mkdir /ares/aresmush
RUN mkdir /ares/ares-webportal
RUN mkdir /ares/ares-webportal/node_modules
RUN chown -R ares /ares
# #########################################################################################
# Install RVM."
USER ares
SHELL ["/bin/bash", "-lic"]
RUN curl -sSL https://rvm.io/mpapis.asc | gpg --import -
RUN curl -sSL https://rvm.io/pkuczynski.asc | gpg --import -
RUN \curl -sSL https://get.rvm.io | bash -s stable --ruby --autolibs=read-fail
RUN source "/home/ares/.rvm/scripts/rvm" & rvm install ruby-3.1.2
RUN source "/home/ares/.rvm/scripts/rvm" & rvm use ruby-3.1.2
# #########################################################################################
# Install Ruby version."
RUN /bin/bash -lc "rvm install ruby-3.1.2"
RUN /bin/bash -lc "rvm use ruby-3.1.2"
RUN echo "source /home/ares/.rvm/scripts/rvm" >> "/home/ares/.profile"
RUN echo "rvm use 3.1.2" >> "/home/ares/.profile"
# #########################################################################################
# Install gem bundler for dependencies."
RUN /bin/bash -lc "gem install bundler"
RUN /bin/bash -lc "gem install rake"
# #########################################################################################
# Installing Node for Ember."
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash\
&& . /home/ares/.nvm/nvm.sh \
&& nvm install 18 \
&& nvm use 18 \
&& nvm alias default 18 \
&& npm install -g ember-cli@4.12