Skip to content

Commit 0ebac85

Browse files
authored
Merge pull request #10 from phabricator-docker/aphlict
Add Aphlict
2 parents c9a9807 + 8efab5f commit 0ebac85

File tree

2 files changed

+127
-1
lines changed

2 files changed

+127
-1
lines changed

Dockerfile.aphlict

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
FROM php:7.2-cli-stretch
2+
3+
# Required Components
4+
# @see https://secure.phabricator.com/book/phabricator/article/installation_guide/#installing-required-comp
5+
RUN apt-get update \
6+
&& apt-get install -y --no-install-recommends \
7+
git \
8+
mercurial \
9+
subversion \
10+
ca-certificates \
11+
python-pygments \
12+
imagemagick \
13+
procps \
14+
&& rm -rf /var/lib/apt/lists/*
15+
16+
# install the PHP extensions we need
17+
RUN set -ex; \
18+
savedAptMark="$(apt-mark showmanual)"; \
19+
\
20+
apt-get update; \
21+
apt-get install -y --no-install-recommends \
22+
libcurl4-gnutls-dev \
23+
libjpeg62-turbo-dev \
24+
libpng-dev \
25+
libfreetype6-dev \
26+
; \
27+
\
28+
docker-php-ext-configure gd \
29+
--with-jpeg-dir=/usr \
30+
--with-png-dir=/usr \
31+
--with-freetype-dir=/usr \
32+
; \
33+
\
34+
docker-php-ext-install -j "$(nproc)" \
35+
gd \
36+
opcache \
37+
mbstring \
38+
iconv \
39+
mysqli \
40+
curl \
41+
pcntl \
42+
; \
43+
\
44+
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
45+
apt-mark auto '.*' > /dev/null; \
46+
apt-mark manual $savedAptMark; \
47+
ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
48+
| awk '/=>/ { print $3 }' \
49+
| sort -u \
50+
| xargs -r dpkg-query -S \
51+
| cut -d: -f1 \
52+
| sort -u \
53+
| xargs -rt apt-mark manual; \
54+
\
55+
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
56+
rm -rf /var/lib/apt/lists/*
57+
58+
RUN pecl channel-update pecl.php.net \
59+
&& pecl install apcu \
60+
&& docker-php-ext-enable apcu
61+
62+
# set recommended PHP.ini settings
63+
# see https://secure.php.net/manual/en/opcache.installation.php
64+
RUN { \
65+
echo 'opcache.memory_consumption=128'; \
66+
echo 'opcache.interned_strings_buffer=8'; \
67+
echo 'opcache.max_accelerated_files=4000'; \
68+
echo 'opcache.revalidate_freq=60'; \
69+
echo 'opcache.fast_shutdown=1'; \
70+
# From Phabricator
71+
echo 'opcache.validate_timestamps=0'; \
72+
} > /usr/local/etc/php/conf.d/opcache-recommended.ini
73+
74+
# Set the default timezone.
75+
RUN { \
76+
echo 'date.timezone="UTC"'; \
77+
} > /usr/local/etc/php/conf.d/timezone.ini
78+
79+
# File Uploads
80+
RUN { \
81+
echo 'post_max_size=32M'; \
82+
echo 'upload_max_filesize=32M'; \
83+
} > /usr/local/etc/php/conf.d/uploads.ini
84+
85+
# Repository Folder.
86+
RUN mkdir /var/repo
87+
88+
RUN mkdir -p /var/tmp/phd/log/ \
89+
&& touch /var/tmp/phd/log/daemons.log \
90+
&& mkdir -p /var/log \
91+
&& touch /var/log/aphlict.log \
92+
&& chown www-data:www-data /var/log/aphlict.log
93+
94+
##### Start Aphlict
95+
96+
EXPOSE 22280
97+
98+
COPY --from=node:lts-stretch /usr/local/bin/node /usr/local/bin/node
99+
100+
COPY --from=node:lts-stretch /usr/local/lib/node_modules /usr/local/lib/node_modules
101+
102+
RUN ln -s ../lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm; \
103+
ln -s ../lib/node_modules/npm/bin/npx-cli.js /usr/local/bin/npx;
104+
105+
##### End Aphlict
106+
107+
COPY ./ /var/www
108+
109+
WORKDIR /var/www
110+
111+
RUN git submodule update --init --recursive
112+
113+
ENV PATH "$PATH:/var/www/phabricator/bin"
114+
115+
##### Start Aphlict
116+
117+
RUN npm install --prefix /var/www/phabricator/support/aphlict/server ws
118+
119+
USER www-data
120+
121+
CMD aphlict debug
122+
123+
##### End Aphlict

Dockerfile.daemon

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,10 @@ RUN { \
8686
RUN mkdir /var/repo
8787

8888
RUN mkdir -p /var/tmp/phd/log/ \
89-
&& touch /var/tmp/phd/log/daemons.log
89+
&& touch /var/tmp/phd/log/daemons.log \
90+
&& mkdir -p /var/log \
91+
&& touch /var/log/aphlict.log \
92+
&& chown www-data:www-data /var/log/aphlict.log
9093

9194
COPY ./ /var/www
9295

0 commit comments

Comments
 (0)