-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDockerfile
More file actions
132 lines (111 loc) · 3.9 KB
/
Copy pathDockerfile
File metadata and controls
132 lines (111 loc) · 3.9 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
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
FROM ghcr.io/netivism/docker-debian-base:trixie
MAINTAINER Jimmy Huang <jimmy@netivism.com.tw>
ENV \
COMPOSER_HOME=/root/.composer \
PATH=/root/.composer/vendor/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# basic packages install
RUN \
apt-get update && \
apt-get install -y rsyslog apt-transport-https wget gnupg google-perftools qpdf curl vim git-core supervisor procps net-tools
# add PHP sury
WORKDIR /etc/apt/sources.list.d
RUN curl -sSL https://packages.sury.org/php/README.txt | bash
#mariadb
RUN \
apt-get install -y wget mariadb-server mariadb-backup mariadb-client
# wkhtmltopdf
WORKDIR /tmp
RUN \
apt-get install -y fonts-droid-fallback fontconfig && \
wget -nv https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.bookworm_amd64.deb -O wkhtmltox.deb && \
apt-get update && \
apt-get install -y ./wkhtmltox.deb && \
rm -f wkhtmltox.deb
# php
WORKDIR /
RUN \
apt-get update && \
apt-get install -y \
php7.4 \
php7.4-cgi \
php7.4-cli \
php7.4-curl \
php7.4-imap \
php7.4-gd \
php7.4-mysql \
php7.4-mbstring \
php7.4-xml \
php7.4-memcached \
php7.4-zip \
php7.4-bz2 \
php7.4-ssh2
RUN \
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && \
cd /root/.composer && \
find . | grep .git | xargs rm -rf && \
composer clearcache
RUN \
mkdir -p /run/php && chmod 777 /run/php
RUN \
VIMRUNTIME=$(vim --cmd 'echo $VIMRUNTIME' --cmd q 2>&1 | tail -n1) && \
echo "source $VIMRUNTIME/defaults.vim" > /etc/vim/vimrc.local && \
echo "let skip_defaults_vim = 1" >> /etc/vim/vimrc.local && \
echo "if has('mouse')" >> /etc/vim/vimrc.local && \
echo " set mouse=" >> /etc/vim/vimrc.local && \
echo "endif" >> /etc/vim/vimrc.local
### develop tools
ENV \
PATH=$PATH:/root/phpunit
#phpunit
RUN \
git clone https://github.com/NETivism/docker-sh.git /home/docker && \
mkdir -p /root/phpunit/extensions && \
wget -O /root/phpunit/phpunit https://phar.phpunit.de/phpunit-7.phar && \
chmod +x /root/phpunit/phpunit && \
cp /home/docker/php/phpunit.xml /root/phpunit/ && \
echo "alias phpunit='phpunit -c ~/phpunit/phpunit.xml'" > /root/.bashrc
# node and nvm for playwright
ENV NODE_VERSION=24
ENV NVM_DIR /usr/local/nvm
ENV PATH $NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH
RUN \
sed -i 's/Components:.*$/Components: main contrib non-free/g' /etc/apt/sources.list.d/debian.sources && apt-get update && \
cd /tmp && \
mkdir -p /tmp/playwright && cd /tmp/playwright && \
mkdir -p $NVM_DIR && \
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.7/install.sh | bash && \
\. "$NVM_DIR/nvm.sh" && \
nvm install $NODE_VERSION && \
nvm alias default $NODE_VERSION && \
nvm use default && \
ln -sfn "$NVM_DIR/versions/node/$(node -v)" "$NVM_DIR/versions/node/v$NODE_VERSION" && \
node -v && npm -v && \
npm install -g -D dotenv && \
npm install -g -D @playwright/test && \
npx playwright install --with-deps chromium && \
apt-get clean && rm -rf /var/lib/apt/lists/*
### drupal download
COPY container/drupal-download.sh /tmp
COPY container/drupalmodule-download.sh /tmp
RUN \
chmod +x /tmp/drupal-download.sh && \
chmod +x /tmp/drupalmodule-download.sh
RUN \
/tmp/drupal-download.sh 7 && \
mkdir -p /var/www/html/sites/all/modules && \
/tmp/drupalmodule-download.sh 7 && \
mkdir -p /var/www/html/log/supervisor && \
mkdir -p /mnt/neticrm-7/civicrm
# we don't have mysql setup on vanilla image
COPY container/mysql-init.sh /usr/local/bin/mysql-init.sh
ADD container/my.cnf /etc/mysql/my.cnf
# override supervisord to prevent conflict
ADD container/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
# add initial script
ADD container/init-7.sh /init.sh
# purge
RUN \
apt-get autoremove -y && \
apt-get clean && rm -rf /var/lib/apt/lists/*
WORKDIR /mnt/neticrm-7/civicrm
CMD ["/usr/bin/supervisord"]