【问题标题】:Adding varnish to existing node Dockerfile将清漆添加到现有节点 Dockerfile
【发布时间】:2021-12-20 05:28:57
【问题描述】:

我有以下 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" ]

现在我想添加 Varnish 缓存并考虑这个 repo docker-varnish 我如何将两者组织在一起?

更新 1

一旦我运行此命令docker compose build 它会显示以下信息,但我没有看到任何与清漆相关的信息

[+] 建造 4.6 秒(11/11)完成
=> [internal] 从 Dockerfile 0.1s 加载构建定义 => => 传输 dockerfile:362B 0.0s => [internal] load .dockerignore 0.1s => => 传输上下文:174B 0.0s => [internal] 加载元数据docker.io/library/node:10-alpine 4.0s => [internal] load build conte xt 0.1s => => 传输上下文:21.58kB 0.0s => [1/6] FROM docker.io/library/node:10-alpine@sha256:dc98dac24efd4254f75976c40bce46944697a110d06ce7fa47e7268470cf2e28 0.0s => 缓存 [2/6] 运行 mkdir -p /home/node/app/node_modules && chown -R node:node /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 => 导出到图像 0.1s => => 导出层 0.0s => => 写入图像 sha256:7eec4ec76dbff93f8b0ebc6e03051331709d5f55a641be379a3e00697eabde70 0.0s => => 命名为 docker.io/library/test_project_node

我做对了吗?

【问题讨论】:

    标签: docker dockerfile varnish


    【解决方案1】:

    您可以使用docker compose 来编排多个容器,如下所述:https://www.varnish-software.com/developers/tutorials/running-varnish-docker/#6-docker-compose

    这使用了官方的 Varnish 图像,而不是您建议的图像。

    这是docker compose 命令使用的此类docker-compose.yml 文件的示例:

    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 文件假定它与您的节点容器的Dockerfile 位于同一文件夹中。它还假设default.vcl 也位于该文件夹中。

    运行 docker compose up 以引导堆栈。

    【讨论】:

    • 你能检查我更新的问题吗?
    • @overflow 不要用其他后续问题更新问题。如果这回答了您最初的问题,请投票并将其标记为已接受。如果没有,不要。如果您还有其他问题,请提出一个新问题并保持原样。
    • @overflow 我更新了我的答案并添加了docker compose up 作为引导整个堆栈所需的命令。
    猜你喜欢
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    • 2020-09-13
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    相关资源
    最近更新 更多