当前位置: 首页 > 面试题库 >

流星Docker和Graphicsmagick

西门伟
2023-03-14
问题内容

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

我找到了这个解决方案docker中的Accessbinaries,但是我无法工作,我应该将这些行放在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图像,对其进行标记并改为使用该图像:

参见:https :
//gist.github.com/so0k/7d4be21c5e2d9abd3743/revisions

编辑:在哪里放置Dockerfile?

start.sh模板已复制到/opt/<appName>/config/,当前Dockerfile必须位于同一目录(/opt/<appName>/config/Dockerfile

参见Linux初始化任务

或者 ,您可以使用-f标记指定特定的Dockerfiledocker build

您的第三个选择 是通过Dockerfile docker build使用此处文档

我已经更新了start.sh要点,我们不再提取meteord:base图像并构建它:

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

docker build会每次运行,但只要需求不改变,码头工人将使用缓存的泊坞窗图像。



 类似资料:
  • 本文向大家介绍meteor 检查流星工具和流星项目的版本,包括了meteor 检查流星工具和流星项目的版本的使用技巧和注意事项,需要的朋友参考一下 示例 流星工具 要检查Meteor工具的安装版本,只需在任何Meteor项目之外运行以下命令: 要获取所有官方(推荐)Meteor版本的列表,请运行: 流星项目 如果要检查Meteor的项目版本,还可以在项目内执行以下命令: 或仅打印文件内容.mete

  • 问题内容: 我在使用Fibers / Meteor.bindEnvironment()时遇到困难。如果集合开始为空,我试图进行代码更新并插入到集合中。所有这些都应该在启动时在服务器端运行。 我第一次编写此文件时,遇到了一些错误,需要将回调包装在Fiber()块中,然后在IRC上讨论时,有人建议尝试使用Meteor.bindEnvironment(),因为那应该将其放入Fiber中。那是行不通的(我

  • 问题内容: 更新 此解决方案描述了如何有效使用Meteor中的新Npm系统。 如果可以使用1.3,请检查http://guide.meteor.com/using-packages.html#installing-npm。 例如,要使用moment.js: 然后在您的代码中: 在Meteor中使用NPM软件包的当前方法是什么? 关于此有几个问题,尤其是[这个问题,但是解决方案似乎已经过时:引擎分支

  • 我在用流星做一个消息应用程序。出于安全原因,我禁用了从客户端调用的任何插入/更新/删除。现在插入消息的唯一方法是使用方法。 如果是这种情况,我将不得不在函数上包含额外的参数,这将使它更加不安全。 我可能不明白这里的方法。

  • 我成功地按照本指南学习了使用铁流星https://medium.com/meteor-js/how-to-build-web-apps-utler-fast-with-meteor-iron-scaffolding-and-automatic-form-generation-11734eda8e67#.gw50bxjif 然后我转到命令行,执行。 我创建了一个简单的react组件 然后,在中,我用

  • 问题内容: 我有 在一个文件中 在另一个文件中。 我得到了错误。很明显,我必须在文件中定义而不是将它们分开。但是Meteor如何处理单独文件中的代码?我可以访问某些对象和变量,而另一些则无法访问。 问题答案: 当您以经典的JavaScript方式定义变量时: 在文件的根目录,Meteor使用IIFE将其范围限定为文件。 如果要定义全局变量,只需不要编写,就可以了: 这将定义默认情况下,所有应用程序