-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
63 lines (45 loc) · 1.93 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
FROM ubuntu:22.04
LABEL maintainer="Jonas Stevnsvig <[email protected]>"
ENV TZ=Europe/Copenhagen
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ARG DEBIAN_FRONTEND=noninteractive
#RUN apt-get install -qy --no-install-recommends tzdata
# clean up apt
RUN apt-get autoremove && \
apt-get clean
# Make sure the package repository is up to date.
RUN apt-get update && \
apt-get -qy full-upgrade && \
apt-get install -qy git
# Install a basic SSH server
RUN apt-get install -qy openssh-server && \
sed -i 's|session required pam_loginuid.so|session optional pam_loginuid.so|g' /etc/pam.d/sshd && \
mkdir -p /var/run/sshd
# install java for Jenkins
RUN apt-get install -qy openjdk-11-jdk
# install rsync
RUN apt-get install -qy rsync
# install PHP 8.1 & mysql
RUN apt-get install -qy php8.1-curl php8.1-gd apache2 mysql-server php8.1 unzip php8.1-mysql php8.1-zip php8.1-mbstring php-xdebug php-pear*
# install composer
RUN wget -O composer-setup.php https://getcomposer.org/installer && \
php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \
composer self-update
# Cleanup old packages
RUN apt-get -qy autoremove
# Add user jenkins to the image
RUN adduser --disabled-password --gecos "" jenkins
# fix java
RUN ln -s /usr/lib/jvm/java-11-openjdk-amd64/ /home/jenkins/jdk && \
chown jenkins:jenkins /home/jenkins/jdk
# Copy authorized_keys & known_hosts & private key for ssh deploys
COPY ssh/authorized_keys /home/jenkins/.ssh/authorized_keys
COPY ssh/known_hosts /home/jenkins/.ssh/known_hosts
COPY resources/xdebug.ini /etc/php/8.1/mods-available/xdebug.ini
RUN ssh-keyscan -H bitbucket.org >> /home/jenkins/.ssh/known_hosts && \
ssh-keyscan -H github.com >> /home/jenkins/.ssh/known_hosts && \
chown -R jenkins:jenkins /home/jenkins/.ssh/
# Standard SSH port
EXPOSE 22
#Jenkins needs the ssh service to be running
CMD ["/usr/sbin/sshd", "-D"]