Meteor Up Docker和Graphicsmagick
我正在寻找如何在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
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文件中进行了此更改,并且成功了?