Meteor Up Docker 和 Graphicsmagick

2023-11-22

我正在寻找如何在 Meteor Up Docker 上安装 Graphicsmagick。

我找到了这个解决方案(访问 docker 内的二进制文件)但我无法工作,我该把这些线放在哪里start.sh?

meteorDockerId=docker ps | grep meteorhacks/meteord:base | awk '{print $1}'
docker exec $meteorDockerId apt-get install graphicsmagick -y

那是我的start.sh:

#!/bin/bash

APPNAME=instagatas
APP_PATH=/opt/$APPNAME
BUNDLE_PATH=$APP_PATH/current
ENV_FILE=$APP_PATH/config/env.list
PORT=80
USE_LOCAL_MONGO=0

# remove previous version of the app, if exists
docker rm -f $APPNAME

# remove frontend container if exists
docker rm -f $APPNAME-frontend

set -e
docker pull meteorhacks/meteord:base

if [ "$USE_LOCAL_MONGO" == "1" ]; then
  docker run \
    -d \
    --restart=always \
    --publish=$PORT:80 \
    --volume=$BUNDLE_PATH:/bundle \
    --env-file=$ENV_FILE \
    --link=mongodb:mongodb \
    --hostname="$HOSTNAME-$APPNAME" \
    --env=MONGO_URL=mongodb://mongodb:27017/$APPNAME \
    --name=$APPNAME \
    meteorhacks/meteord:base
else
  docker run \
    -d \
    --restart=always \
    --publish=$PORT:80 \
    --volume=$BUNDLE_PATH:/bundle \
    --hostname="$HOSTNAME-$APPNAME" \
    --env-file=$ENV_FILE \
    --name=$APPNAME \
    meteorhacks/meteord:base
fi


  docker pull meteorhacks/mup-frontend-server:latest
  docker run \
    -d \
    --restart=always \
    --volume=/opt/$APPNAME/config/bundle.crt:/bundle.crt \
    --volume=/opt/$APPNAME/config/private.key:/private.key \
    --link=$APPNAME:backend \
    --publish=443:443 \
    --name=$APPNAME-frontend \
    meteorhacks/mup-frontend-server /start.sh

每次重新启动容器时重新安装graphicsmagick包似乎是我不想做的黑客行为。

如果您已经修改启动脚本,不妨使用 Dockerfile:

FROM meteorhacks/meteord:base
RUN apt-get install graphicsmagick -y

然后修改start.sh使用graphicsmagick构建新的docker镜像的模板,标记它并使用该镜像:

see: https://gist.github.com/so0k/7d4be21c5e2d9abd3743/revisions

编辑:Dockerfile 放在哪里?

start.sh模板被复制到/opt/<appName>/config/,目前 Dockerfile 需要位于同一目录中(/opt/<appName>/config/Dockerfile)

see Linux 初始化任务

或者,您可以使用以下命令指定特定的 Dockerfile-f标志为docker build

Or 你的第三个选择是将 Dockerfile 通过管道传输到docker build用一个这里的文档

我已经更新了start.sh要点,我们不再拉取 metered:base 镜像并构建它:

docker build -t meteorhacks/meteord:app - << EOF
FROM meteorhacks/meteord:base
RUN apt-get install graphicsmagick -y
EOF

The docker build每次都会运行,但只要需求没有改变,docker就会使用它缓存的docker镜像。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Meteor Up Docker 和 Graphicsmagick 的相关文章

随机推荐

  • LINQ、Where() 与 FindAll()

    有人可以解释 LINQ 函数Where 和FindAll 有何不同吗 他们俩似乎都在做同样的事情 FindAll 是一个函数List
  • htons 中的混乱 - 小端/大端

    当我通过套接字从一个进程向另一个进程发送一个整型变量 然后在接收端打印该值时 在不使用ntohl htonl的情况下该值仍然相同 那么除了初始化套接字结构之外 我还需要在哪里使用这些函数 我理解小 大端 但是 当值保持不变时 为什么我们需要
  • 使用前向和后向正则表达式时出错

    我在使用以下正则表达式时遇到问题 它在 regexr 和 rubular 中运行良好 但在 node js 上运行时出现错误 我对使用正则表达式相当陌生 我不确定我做错了什么 如果我关掉它就会起作用 lt 所以我认为这就是问题所在 我正在尝
  • 照亮\广播\广播异常 无消息

    我在用着由 beyondcode 编写的 Laravel websocket 几天后 我已经连接到myDomain com laravel websockets第一步解决了 但现在 当我触发event laravel此时出现错误 publi
  • 如何前瞻性地使用Pandas的rolling_*函数

    假设我有一个时间序列 In 138 rng pd date range 1 10 2011 periods 10 freq D In 139 ts pd Series randn len rng index rng In 140 Out 1
  • 清除情节提要中使用的标签文本

    想知道是否有人知道如何完成以下 In a Storyboard我用虚拟文本设置标签 它们不是静态文本 例如 User1 用户名 我想知道是否有一个设置可以在视图加载该标签时清除该标签的值 我还有一些其他代码可以运行并收集相关信息 但是 可能
  • 检查 TypeScript 中的枚举中是否存在值

    我收到一个号码type 3并且必须检查它是否存在于该枚举中 export const MESSAGE TYPE INFO 1 SUCCESS 2 WARNING 3 ERROR 4 我发现的最好方法是将所有枚举值作为数组获取并在其上使用in
  • 函数式编程——for 和 while 循环

    我正在尝试写for and whilePython 中的循环 函数式编程风格 I think for构造很好 但是while不起作用 它无限运行 for loop lst 1 2 3 def fun e return e print map
  • 为什么 Seq.iter 和 Seq.map 慢这么多?

    考虑 F 中的以下代码 let n 10000000 let arr Array init n fun gt 0 let rec buildList n acc i if i n then acc else buildList n 0 ac
  • GAWK:strftime() 的逆 - 使用格式模式将日期字符串转换为自纪元时间戳以来的秒数

    Gnu AWK 提供内置函数 strftime 它可以转换时间戳1359210984 into Sat 26 Jan 15 36 24 CET 2013 我找不到可以执行此操作的函数 seconds timefromdate Sat 26
  • 如何在 iOS 9.0 Beta 中实现新的 Core Data 模型构建器“唯一”属性

    在 WWDC15 视频会议中 核心数据的新变化 在 10 45 分钟 演示开始时 Apple 工程师描述了模型构建器的一项新功能 该功能允许您指定独特的属性 一旦设置了这些唯一属性 Core Data 将不会创建具有该属性的重复对象 这是为
  • 根据两列分配唯一ID [重复]

    这个问题在这里已经有答案了 我有一个数据框 df 如下所示 School Student Year A 10 1999 A 10 2000 A 20 1999 A 20 2000 A 20 2001 B 10 1999 B 10 2000
  • MediaPlayer 在 Android 4.4 上随机停止 (19)

    我的应用程序在除 Nexus 5 之外的所有设备上都可以正常传输音频 在 Nexus 5 上 MediaPlayer 随机停止播放 不确定响度是否发生变化 http developer android com about versions
  • Boost Spirit可以用来解析字节流数据吗?

    Spirit Boost C 库的一部分 可以用来解析来自流的二进制数据吗 例如 它可以用来将来自套接字的数据解析为结构 字节和单独的位标志吗 谢谢 Boost Spirit 允许使用定义解析器扩展巴科斯 诺尔范式 EBNF 语法与模板元编
  • DataFrame 到列表的列表,不更改值的数据类型

    df values to list or list df values 将数据帧转换为列表列表 但整数值转换为浮点值 数据框是 HSCode value year 0 2 0 18 2018 1 3 0 00 2018 2 4 12 48
  • Django:查询使用包含列表中的每个值

    我需要执行 django 查询来检查字段是否包含列表中的所有值 该列表的长度会有所不同 Example User objects filter first name contains x y z import operator from d
  • 在 GCC 中动态创建 va_list - 可以做到吗?

    我的问题是vsprintf是我无法直接获取输入参数 我必须先逐一获取输入并将它们保存在void 然后通过这个void to vsprintf 对于windows来说一切都很好 但是当我来到64位linux时 gcc无法编译 因为它不允许从v
  • 如何使用 FB FQL 多重查询的结果?

    我对 Facebook 的 fql multiquery 方法感到困惑 我正在尝试检索一篇文章的所有评论 然后检索每个评论的用户信息 我可以毫无问题地获得评论 但我很难获得用户 目前我正在使用以下内容 FB api method fql m
  • Flask-OIDC redirect_uri 值在某处被覆盖?

    我已经安装了 Flask OIDC 并尝试使用我公司的服务对用户进行身份验证 我正在使用 client secrets json 文件 该文件正在正确读取 解析和发送 client id client secret 和其他值 我将redir
  • Meteor Up Docker 和 Graphicsmagick

    我正在寻找如何在 Meteor Up Docker 上安装 Graphicsmagick 我找到了这个解决方案 访问 docker 内的二进制文件 但我无法工作 我该把这些线放在哪里start sh meteorDockerId docke