forked from gitpython-developers/GitPython
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile
84 lines (72 loc) · 3.19 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
#
# Contributed by: James E. King III (@jeking3) <[email protected]>
#
# This Dockerfile creates an Ubuntu Xenial build environment
# that can run the same test suite as Travis CI.
#
FROM ubuntu:xenial
# Metadata
LABEL maintainer="[email protected]"
LABEL description="CI environment for testing GitPython"
ENV CONTAINER_USER=user
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && \
apt-get install -y --no-install-recommends \
add-apt-key \
apt \
apt-transport-https \
apt-utils \
ca-certificates \
curl \
git \
net-tools \
openssh-client \
sudo \
vim \
wget
RUN add-apt-key -v 6A755776 -k keyserver.ubuntu.com && \
add-apt-key -v E1DF1F24 -k keyserver.ubuntu.com && \
echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu xenial main" >> /etc/apt/sources.list && \
echo "deb http://ppa.launchpad.net/deadsnakes/ppa/ubuntu xenial main" >> /etc/apt/sources.list && \
apt-get update && \
apt-get install -y --install-recommends git python2.7 python3.4 python3.5 python3.6 python3.7 && \
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python2.7 27 && \
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.4 34 && \
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 35 && \
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 36 && \
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 37
RUN curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && \
python3 get-pip.py && \
pip3 install tox
# Clean up
RUN rm -rf /var/cache/apt/* && \
rm -rf /var/lib/apt/lists/* && \
rm -rf /tmp/* && \
rm -rf /var/tmp/*
#################################################################
# Build as a regular user
# Credit: https://github.com/delcypher/docker-ubuntu-cxx-dev/blob/master/Dockerfile
# License: None specified at time of import
# Add non-root user for container but give it sudo access.
# Password is the same as the username
RUN useradd -m ${CONTAINER_USER} && \
echo ${CONTAINER_USER}:${CONTAINER_USER} | chpasswd && \
echo "${CONTAINER_USER} ALL=(root) ALL" >> /etc/sudoers
RUN chsh --shell /bin/bash ${CONTAINER_USER}
USER ${CONTAINER_USER}
#################################################################
# The test suite will not tolerate running against a branch that isn't "master", so
# check out the project to a well-known location that can be used by the test suite.
# This has the added benefit of protecting the local repo fed into the container
# as a volume from getting destroyed by a bug exposed by the test suite. :)
ENV TRAVIS=ON
RUN git clone --recursive https://github.com/gitpython-developers/GitPython.git /home/${CONTAINER_USER}/testrepo && \
cd /home/${CONTAINER_USER}/testrepo && \
./init-tests-after-clone.sh
ENV GIT_PYTHON_TEST_GIT_REPO_BASE=/home/${CONTAINER_USER}/testrepo
ENV TRAVIS=
# Ensure any local pip installations get on the path
ENV PATH=/home/${CONTAINER_USER}/.local/bin:${PATH}
# Set the global default git user to be someone non-descript
RUN git config --global user.email [email protected] && \
git config --global user.name "GitPython CI User"