Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor Up Docker和Graphicsmagick_Meteor_Docker_Graphicsmagick_Meteor Up - Fatal编程技术网

Meteor Up Docker和Graphicsmagick

Meteor Up Docker和Graphicsmagick,meteor,docker,graphicsmagick,meteor-up,Meteor,Docker,Graphicsmagick,Meteor Up,我正在寻找如何在Meteor Up Docker安装Graphicsmagick 我找到了这个解决方案(),但无法工作,我应该将这些行放在start.sh meteorDockerId=docker ps | grep meteorhacks/meteord:base | awk '{print $1}' docker exec $meteorDockerId apt-get install graphicsmagick -y 这是我的开始。sh: #!/bin/bash APPNAME=i

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

我找到了这个解决方案(),但无法工作,我应该将这些行放在
start.sh

meteorDockerId=docker ps | grep meteorhacks/meteord:base | awk '{print $1}'
docker exec $meteorDockerId apt-get install graphicsmagick -y
这是我的
开始。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

如果If语句成功,那么您应该能够看到与正在进行grepping的图像相对应的正在运行的容器。在我看来,您可以在fi之后添加两行以获得环境变量

每次重新启动容器时都要重新安装GraphicsMagck软件包,这似乎是一种我不想做的黑客行为

如果您已经在修改开始脚本,还可以使用Dockerfile:

FROM meteorhacks/meteord:base
RUN apt-get install graphicsmagick -y
然后修改
start.sh
模板,用graphicsmagick构建一个新的docker图像,标记它并使用该图像:

见:

编辑:在哪里放置Dockerfile

start.sh
模板被复制到
/opt/

或者,您可以使用
-f
标志为

或者您的第三个选项是使用

我已经更新了,我们不再拉流星:基地形象,而是建立它:

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

docker build-t meteorhacks/meteord:app-为什么不添加以下包
meteor add cfs:graphicsmagick

它试图确保Graphicsmagick可用。它适用于我的用例,我认为它也适用于docker。

Meteor Up at的开发版本允许在配置文件(
mup.js
)中指定自定义docker映像

安装了Graphicsmagick的流星图像可在上获得

这使我得到了一个有效的部署(Meteor 1.3.2.4,米级以上,节点v5.4.1):

mup.js:

module.exports = {
  …
  meteor: {
    dockerImage: 'ianmartorell/meteord-graphicsmagick',
    …
  },
};
为get生成映像,但您可以临时执行以下操作:

docker exec -it MeteorAppName apt-get install imagemagick -y

docker restart MeteorAppName

检查imagemagick:
docker exec-it MeteorAppName convert-version

我无法获得@hobbyhobbit提到的docker映像,因此我想出了如何编写一个使用abernix/meteord:base并安装graphicsmagick的映像。非常简单,但在Meteor 1.4.1.1上它似乎对我有用

我只是在我的mup.js文件中这样做的

docker: {
  image: "joshjoe/meteor-graphicsmagick",
},
这是一个巨大的痛苦开始工作,所以我很乐意帮助任何人谁是挣扎与此


我找不到放置Docker文件的位置。我输入了
/opt/instagatas/config
/opt/instagatas
,但我看到这条消息
找不到Dockerfile:Dockerfile
。我应该把它放在哪里?我已经更新了我的答案,以解决您的评论,将Dockerfile放在哪里,我认为实际上将内容通过管道传输到start.sh模板中的
docker build
命令可能会更好。我尝试了第三个选项,如果我使用
mupx restart
,效果会更好,但是当我执行
mupx deploy
时,
start.sh
会更改回原始文件,因此我需要再次更改文件并重新启动。有一种方法可以避免这种情况发生?您是否在template文件夹或
/opt/../config
文件夹中更改了start.sh?你应该为我更改start.sh template,它位于/usr/local/lib/node_modules/mupx/templates/linux/start中。我正在使用这个包,但需要在服务器上安装Graphicsmagick,这就是我要做的。@DiegoGuimarães该软件包也为我安装了gm,这很有趣。这可能是另一个问题。该软件包将不会安装在您的服务器上。您是否必须在某个地方下载此docker映像,或者您只是在mup.js文件中进行了此更改,并且成功了?