-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDockerfile
More file actions
73 lines (63 loc) · 2.29 KB
/
Dockerfile
File metadata and controls
73 lines (63 loc) · 2.29 KB
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
FROM ubuntu:17.10
ARG name="Aric Beagley"
ARG email="abeagley@bastionweb.io"
SHELL ["/bin/bash", "-c"]
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y apt-utils && \
apt-get install -y \
curl \
git \
nano \
ssh \
openssl \
python \
python-pip \
python3 \
sudo \
unzip \
vim \
wget
# User setup / Global binaries
WORKDIR /usr/local/bin
RUN groupadd -g 70 dev && \
useradd -N -m -u 70 -g 70 -G sudo dev && \
echo "root:dev" | chpasswd && \
echo "dev:dev" | chpasswd && \
pip install 'docker-compose==1.18.0' && \
curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/v1.8.4/bin/linux/amd64/kubectl && \
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && \
cd /tmp && \
curl -Lo protoc.zip https://github.com/google/protobuf/releases/download/v3.5.1/protoc-3.5.1-linux-x86_64.zip && \
unzip protoc.zip -d protoc && \
mv ./protoc/bin/protoc /usr/local/bin && \
mv ./protoc/include/google /usr/local/include && \
curl -Lo go.tar.gz https://dl.google.com/go/go1.10.linux-amd64.tar.gz && \
tar -C /usr/local -xzf go.tar.gz && \
cd /usr/local/bin &&\
chmod +x ./minikube ./kubectl ./protoc
COPY ./bash/ /home/dev/
COPY ./welcome.sh /home/dev/
# Fix permissions in-case we're building on windows
WORKDIR /home/dev
RUN rm -rf .profile && \
chown dev:dev welcome.sh .bash_profile .bash_prompt .bashrc .inputrc
#
# Anything below this point is attached to the `dev` user
#
USER dev
WORKDIR /home/dev
ENV HOME="/home/dev" GOROOT="/usr/local/go" GOPATH="$HOME/go" PATH="$HOME/.local/bin:$GOPATH/bin:$GOROOT/bin:$PATH"
# User apps / Create volume dir stubs
RUN git config --global user.name $name && \
git config --global user.email $email && \
pip install awscli --upgrade --user && \
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash && \
source ~/.bashrc && \
nvm install --lts && \
echo "source $HOME/welcome.sh" >> $HOME/.bash_profile && \
mkdir -p $HOME/workdir/go $HOME/credentials/ssh && \
ln -s $HOME/credentials/ssh $HOME/.ssh
VOLUME ["/home/dev/credentials", "/home/dev/workdir"]
WORKDIR /home/dev
CMD /bin/bash