Как правильно настроить и собрать свой докер-контейнер / образ для запуска в веб-браузере?
У меня есть метеорное веб-приложение и используется одно из существующих базовых образов: jshimko / meteor-Панель запуска , рекомендованная в официальном Метеорологическом руководстве по Деполяция и мониторинг , учебное руководство по адресу meteor-launchpad-github .Мне удалось создать изображение на основе моего веб-приложения , но ему никогда не назначался порт , поэтому я не могу запустить его в браузере.
Добавил Dockerfile
в корень моего веб-приложения и добавил следующее содержимое
FROM debian:jessie
Чтобы создать образ, я запускаю нижеприведенное в терминале
docker build -t sirbt/myapp .
, котороеyeilded:
Sending build context to Docker daemon 2.331MB
Step 1/1 : FROM debian:jessie
---> b6e9658de383
Successfully built b6e9658de383
Successfully tagged sirbt/myapp:latest
Затем я начинаю сохранять следующее содержимое в файле .dockerignore
, который я также сохраняю в корне каталога приложения
.git
.meteor/local
node_modules
, а затем запускаю приведенный ниже код длязапустите myapp в контейнере
docker run -d \
-e ROOT_URL=http://example.com \
-e MONGO_URL=mongodb://url \
-e MONGO_OPLOG_URL=mongodb://oplog_url \
-e MAIL_URL=smtp://mail_url.com \
-p 70:3000 \
sirbt/myapp
код, затем вы получите:
4e616999e521014fcb19d33869b45c79d93d6774d2d02e2f413343b72294f88b
Я следую за этим командой:
docker ps
Какойyeild:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Однако
docker ps -a
yeilds:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4e616999e521 sirbt/myapp "bash" 3 minutes ago Exited (0) 2 minutes ago compassionate_greider
Как вы можете сказать, контейнеру порт не назначенчтобы я мог запустить его в браузере.Учебное пособие предполагает, что в этот момент я смог запустить его на локальном хосте через порт 80 (в моем случае порт 70) .Что мне здесь не хватает?Как я могу настроить свой док-контейнер так, чтобы ему был назначен порт, позволяющий мне запускать его в браузере?
Найдите ниже содержимое моего docker-compose.yml
# docker-compose.yml
app:
image: yourname/app
ports:
- "70:3000"
links:
- mongo
environment:
- ROOT_URL=http://example.com
- MONGO_URL=mongodb://mongo:27017/meteor
mongo:
image: mongo:latest
command: mongod --storageEngine=wiredTiger
Обновите, чтобы отразить, почему я не использую FROM jshimko/meteor-launchpad:latest
в своем файле Docker
Когда я обновляю свой Dockerfile с помощью FROM jshimko/meteor-launchpad:latest
, как предложено в руководстве.Я получаю следующее сообщение об ошибке:
`Get:6 http://deb.debian.org jessie/main amd64 Packages [9098 kB]
Fetched 10.1 MB in 8s (1154 kB/s)
W: Failed to fetch http://deb.debian.org/debian/dists/jessie-updates/InRelease Unable to find expected entry 'main/binary-amd64/Packages' in Release file (Wrong sources.list entry or malformed file)
E: Some index files failed to download. They have been ignored, or old ones used instead.
The command '/bin/sh -c cd $APP_SOURCE_DIR && $BUILD_SCRIPTS_DIR/install-deps.sh && $BUILD_SCRIPTS_DIR/install-node.sh && $BUILD_SCRIPTS_DIR/install-phantom.sh && $BUILD_SCRIPTS_DIR/install-graphicsmagick.sh && $BUILD_SCRIPTS_DIR/install-mongo.sh && $BUILD_SCRIPTS_DIR/install-meteor.sh && $BUILD_SCRIPTS_DIR/build-meteor.sh && $BUILD_SCRIPTS_DIR/post-build-cleanup.sh' returned a non-zero code: 100`