docker - 将清漆添加到现有节点 Dockerfile
问题描述
我有以下 Dockerfile
FROM node:10-alpine
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app
WORKDIR /home/node/app
COPY package*.json ./
USER node
RUN npm install
COPY --chown=node:node . .
EXPOSE 8080
CMD [ "node", "app.js" ]
现在我想添加清漆缓存并考虑这个 repo docker-varnish我如何将两者组织在一起?
更新 1
运行此命令docker compose build
后,它会显示以下信息,但我看不到任何与清漆相关的信息
[+] 构建 4.6s (11/11) 已完成
=> [internal] 从 Dockerfile 0.1s 加载构建定义 => => 传输 dockerfile:362B 0.0s => [internal] load .dockerignore 0.1s => => 传输上下文:174B 0.0s => [internal] 加载元数据docker.io/库/节点:10-alpine 4.0s => [internal] 加载构建上下文 0.1s => => 传输上下文:21.58kB 0.0s => [1/6] FROM docker.io/library/node:10-alpine@sha256:dc98dac24efd4254f75976c40bce46944697a110d06ce7fa47e70.e287 s => CACHED [2/6] RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app节点 /home/node/app节点 /home/node/app[内部] 加载构建上下文 0.1s => => 传输上下文:21.58kB 0.0s => [1/6] FROM docker.io/library/node:10-alpine@sha256:dc98dac24efd4254f75976c40bce46944697a110d06ce7fa47e7268470cf2e28 0.0s => CACHED2 6] 运行 mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app[内部] 加载构建上下文 0.1s => => 传输上下文:21.58kB 0.0s => [1/6] FROM docker.io/library/node:10-alpine@sha256:dc98dac24efd4254f75976c40bce46944697a110d06ce7fa47e7268470cf2e28 0.0s => CACHED2 6] 运行 mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app58kB 0.0s => [1/6] FROM docker.io/library/node:10-alpine@sha256:dc98dac24efd4254f75976c40bce46944697a110d06ce7fa47e7268470cf2e28 0.0s => CACHED [2/6] RUN mkdir -&p /homechownnode/node/ -R 节点:节点 /home/node/app58kB 0.0s => [1/6] FROM docker.io/library/node:10-alpine@sha256:dc98dac24efd4254f75976c40bce46944697a110d06ce7fa47e7268470cf2e28 0.0s => CACHED [2/6] RUN mkdir -&p /homechownnode/node/ -R 节点:节点 /home/node/app
0.0s => CACHED [3/6] WORKDIR /home/node/app 0.0s => CACHED [4/6] COPY package*.json ./ 0.0s => CACHED [5/6] RUN npm install 0.0s = > [6/6] 复制 --chown=node:node 。. 0.1s =>
我做的事情对吗?
解决方案
您可以使用docker compose
编排多个容器,如下所述:https ://www.varnish-software.com/developers/tutorials/running-varnish-docker/#6-docker-compose 。
这使用官方清漆图像,而不是您建议的图像。
以下是该命令docker-compose.yml
使用的此类文件的示例:docker compose
version: "3"
services:
varnish:
image: varnish:stable
container_name: varnish
volumes:
- "./default.vcl:/etc/varnish/default.vcl"
ports:
- "80:80"
tmpfs:
- /var/lib/varnish:exec
environment:
- VARNISH_SIZE=2G
depends_on:
- "node"
node:
build: ./
container_name: node
ports:
- "8080:8080"
此docker-compose.yml
文件假定它与 Node 容器位于同一文件夹Dockerfile
中。它还假设它default.vcl
也位于该文件夹中。
运行docker compose up
以引导堆栈。
推荐阅读
- api - Prometheus 为 .NET core api 返回错误“服务器返回 HTTP 状态 401 未授权”
- vba - 使用宏按钮根据模板和主工作表上的列表添加新选项卡
- python - 在python中发送telnet命令
- c# - Classlibrary 输出类型中的 Npgsql 程序集错误
- javascript - 过滤firebase数据库中的数据时遇到问题
- django - 在 Elastic Beanstalk 上启动 SQS celery worker
- c# - 如何禁用打开 WPF 弹出窗口
- amazon-web-services - Amazon lex 匹配完全不相似的 Intent
- r - 是否可以将神经网络从 R 导出到 Excel?
- anaconda - 在 Conda 环境中导入系统模块