首页 > 解决方案 > 将清漆添加到现有节点 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 =>

我做的事情对吗?

标签: dockerdockerfilevarnish

解决方案


您可以使用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以引导堆栈。


推荐阅读