-
Notifications
You must be signed in to change notification settings - Fork 973
/
Dockerfile
96 lines (73 loc) · 2.29 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
FROM node:20-alpine as nodeBase
RUN yarn global add pnpm &&\
pnpm config set registry https://registry.npmmirror.com
# 编译后端
WORKDIR /app
COPY xyz.meedu.admin /app/admin
COPY xyz.meedu.h5 /app/h5
COPY xyz.meedu.pc /app/pc
# 编译后台
WORKDIR /app/admin
RUN pnpm i --frozen-lockfile && VITE_APP_URL=/api/ yarn build
# 编译PC
WORKDIR /app/pc
RUN pnpm i --frozen-lockfile && VITE_APP_URL=/api/ yarn build
# 编译H5
WORKDIR /app/h5
RUN pnpm i --frozen-lockfile && VITE_APP_URL=/api/ yarn build
FROM php:7.4-fpm-alpine as base
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories
RUN apk update && apk upgrade && apk add --no-cache \
bash \
libgcc \
tini \
curl \
nginx \
libzip-dev \
freetype \
libjpeg-turbo \
libpng \
freetype-dev \
libjpeg-turbo-dev \
libpng-dev \
&& docker-php-ext-configure gd \
--with-freetype=/usr/include/ \
--with-jpeg=/usr/include/ \
&& docker-php-ext-install -j$(nproc) gd \
&& docker-php-ext-enable gd \
&& apk del --no-cache \
freetype-dev \
libjpeg-turbo-dev \
libpng-dev \
&& rm -rf /tmp/*
RUN docker-php-ext-install pdo pdo_mysql zip bcmath pcntl opcache
COPY --from=nodeBase --chown=www-data:www-data /app/admin/dist /var/www/admin
COPY --from=nodeBase --chown=www-data:www-data /app/pc/dist /var/www/pc
COPY --from=nodeBase --chown=www-data:www-data /app/h5/dist /var/www/h5
# Nginx配置文件
COPY docker/nginx/default.conf /etc/nginx/http.d/default.conf
# PHP配置文件
COPY docker/php/php.ini /usr/local/etc/php/php.ini
COPY docker/php/php-fpm.conf /usr/local/etc/php-fpm.conf
COPY docker/php/php-fpm.d /usr/local/etc/php-fpm.d
# PHP-FPM运行日志目录
RUN mkdir -p /var/log/php
RUN chown -R www-data:www-data /var/log/php
# 安装composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# 下载API程序代码
COPY --chown=www-data:www-data xyz.meedu.api /var/www/api
# 设置工作目录
WORKDIR /var/www/api
# 安装依赖
RUN composer install --optimize-autoloader --no-dev
# laravel框架的一些操作
RUN php artisan route:cache && php artisan storage:link && php artisan install:lock
EXPOSE 8000
EXPOSE 8100
EXPOSE 8200
EXPOSE 8300
COPY docker/run.sh /run.sh
RUN chmod +x /run.sh
ENTRYPOINT ["tini", "--"]
CMD /run.sh