我正在寻找如何在Meteor Up Docker上安装Graphicsmagick。
我找到了这个解决方案docker中的Accessbinaries,但是我无法工作,我应该将这些行放在start.sh哪里?
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)
/opt/<appName>/config/
/opt/<appName>/config/Dockerfile
参见Linux初始化任务
或者 ,您可以使用-f标记指定特定的Dockerfiledocker build
-f
docker 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会每次运行,但只要需求不改变,码头工人将使用缓存的泊坞窗图像。