-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile
120 lines (105 loc) · 4.52 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
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
FROM ubuntu:22.04 as default
LABEL maintainer="Pusparaj Bhattarai"
ARG PHP_VERSION=8.3
ARG NODE_VERSION=20
WORKDIR /var/www/html
ENV TZ UTC
ENV EDITOR vim
ENV WWWUSER 1000
ENV WWWGROUP 1000
ENV COMPOSER_HOME /home/sail/.composer
ENV PATH "${PATH}:${COMPOSER_HOME}/vendor/bin"
RUN apt-get update \
&& apt-get -y upgrade \
&& echo ${TZ} > /etc/timezone \
&& ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime \
&& apt-get install -y ca-certificates curl git gnupg gosu libcap2-bin libpng-dev python2 sqlite3 supervisor unzip zip \
&& mkdir -p ~/.gnupg \
&& chmod 600 ~/.gnupg \
&& echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \
&& apt-key adv --homedir ~/.gnupg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E5267A6C \
&& apt-key adv --homedir ~/.gnupg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C300EE8C \
&& echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu jammy main" > /etc/apt/sources.list.d/ppa_ondrej_php.list \
&& apt-get -y autoremove \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
RUN apt-get update \
&& apt-get install -y \
php${PHP_VERSION}-bcmath \
php${PHP_VERSION}-cli \
php${PHP_VERSION}-curl \
php${PHP_VERSION}-dev \
php${PHP_VERSION}-gd \
php${PHP_VERSION}-igbinary \
php${PHP_VERSION}-imagick \
php${PHP_VERSION}-imap \
php${PHP_VERSION}-intl \
php${PHP_VERSION}-ldap \
php${PHP_VERSION}-mbstring \
php${PHP_VERSION}-memcached \
php${PHP_VERSION}-msgpack \
php${PHP_VERSION}-mysql \
php${PHP_VERSION}-pcov \
php${PHP_VERSION}-pgsql \
php${PHP_VERSION}-readline \
php${PHP_VERSION}-redis \
php${PHP_VERSION}-soap \
php${PHP_VERSION}-sqlite3 \
php${PHP_VERSION}-swoole \
php${PHP_VERSION}-xdebug \
php${PHP_VERSION}-xml \
php${PHP_VERSION}-zip \
&& apt-get -y autoremove \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
&& curl -sL https://deb.nodesource.com/setup_$NODE_VERSION.x | bash - \
&& curl -fsSL https://get.pnpm.io/install.sh | bash - \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
&& apt-get update \
&& apt-get install -y mysql-client nodejs postgresql-client vim yarn \
&& apt-get -y upgrade \
&& apt-get -y autoremove \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
&& curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list > /etc/apt/sources.list.d/mssql-release.list \
&& apt-get update \
&& ACCEPT_EULA=Y apt-get install -y msodbcsql18 \
&& ACCEPT_EULA=Y apt-get install -y mssql-tools18 \
&& export PATH="${PATH}:/opt/mssql-tools18/bin" \
&& apt-get install -y freetds-common freetds-bin unixodbc php${PHP_VERSION}-sybase \
&& apt-get install -y unixodbc-dev \
&& pecl install sqlsrv \
&& pecl install pdo_sqlsrv \
&& phpenmod -v ${PHP_VERSION} sqlsrv pdo_sqlsrv \
&& apt-get -y autoremove \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
RUN apt-get update \
&& apt-get -y upgrade \
&& apt-get -y autoremove \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
RUN composer global require laravel/installer
COPY start-container /usr/local/bin/start-container
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
COPY php.ini /etc/php/${PHP_VERSION}/cli/conf.d/99-sail.ini
RUN groupadd --force -g ${WWWGROUP} sail \
&& useradd -ms /bin/bash --no-user-group -g ${WWWGROUP} -u ${WWWUSER} sail \
&& setcap "cap_net_bind_service=+ep" /usr/bin/php${PHP_VERSION} \
&& chmod +x /usr/local/bin/start-container
RUN chown -R sail:sail /home/sail
ENTRYPOINT ["start-container"]
FROM default as wkhtml
RUN apt-get update \
&& apt-get install -y wget \
&& wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb \
&& apt-get install ./wkhtmltox_0.12.6.1-2.jammy_amd64.deb -y \
&& rm wkhtmltox_0.12.6.1-2.jammy_amd64.deb \
&& apt-get install fonts-indic -y \
&& fc-cache -f \
&& apt-get -y autoremove \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*