tengine 和 node 合并一个镜像的 Dockerfile
时间: 2024-06-08 22:09:03 浏览: 170
Dockerfile构建镜像案例
5星 · 资源好评率100%
以下是将 Tengine 和 Node 合并到同一个 Docker 镜像的 Dockerfile:
```Dockerfile
FROM ubuntu:latest
# 安装 Tengine
RUN apt-get update && \
apt-get install -y wget build-essential libpcre3 libpcre3-dev zlib1g-dev libssl-dev && \
wget http://tengine.taobao.org/download/tengine-2.3.2.tar.gz && \
tar zxvf tengine-2.3.2.tar.gz && \
cd tengine-2.3.2 && \
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module && \
make && make install && \
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
# 安装 Node.js
RUN apt-get install -y curl && \
curl -sL https://deb.nodesource.com/setup_14.x | bash - && \
apt-get install -y nodejs
# 添加应用代码
COPY app /app
# 配置 Tengine 和 Node.js
COPY nginx.conf /usr/local/nginx/conf/nginx.conf
WORKDIR /app
RUN npm install && \
npm run build
# 开放端口
EXPOSE 80
# 启动服务
CMD ["nginx", "-g", "daemon off;"]
```
其中,`app` 目录是应用代码所在的目录,`nginx.conf` 是 Tengine 的配置文件,示例配置文件如下:
```nginx
worker_processes auto;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
root /app/dist;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
}
```
这个配置文件将 Tengine 监听 80 端口,并将请求转发到 Node.js 应用的静态文件目录 `/app/dist`。在启动容器时,Tengine 将会自动启动,并将请求代理到 Node.js 应用。
阅读全文