Как создать изолированную «среду» в Ubuntu? - PullRequest
0 голосов
/ 28 июня 2018

Есть ли способ создать изолированную среду в Ubuntu 14.04? У меня установлено нестабильное приложение, и иногда оно не работает, я не знаю почему. Итак, я пытаюсь создать изолированную среду таким образом, чтобы устанавливаемые мной зависимости были доступны только в этой среде (что-то вроде виртуальной среды Python).

Программе необходимо установить следующие зависимости: libc6 , libstdc ++ 6, imagemagick , perl , libgl1-mesa-glx и libglu1-mesa

Надеюсь, вы поняли мой вопрос. Спасибо!

1 Ответ

0 голосов
/ 28 июня 2018

Вы можете использовать Docker для создания изолированной среды, похожей на виртуальную машину. У вас должен быть запущен демон Docker на вашем компьютере для разработки (доступен на Mac, Windows и Linux). Затем вы создаете Dockerfile, который начинается с базового образа Ubuntu 14.04. Затем вы можете использовать синтаксис Docker для написания команд для установки ваших зависимостей и копирования своего кода в контейнер Docker (экземпляр вашей изолированной среды).

Допустим, у вас есть базовое Java-приложение, и вы находитесь в каталоге /app:

/app
|
├── /bin
|   └── app.jar
|
├── /src
|   └── app.java
|
└── Dockerfile

Ваш Dockerfile будет выглядеть следующим образом для описания вашей изолированной среды:

# Use the Ubuntu 14.04 base image
FROM ubuntu:14.04

# Install dependencies 
# (assuming they are available via apt-get)

# <install Java here>

RUN apt-get install -y \
libc6                  \
libstdc++6             \
imagemagick            \
perl                   \
libgl1-mesa-glx        \ 
libglu1-mesa       

# Copy code (or binaries) into the container
COPY app/bin/app.jar /app.jar

# Expose port 8080
EXPOSE 8080

# Run the application
CMD java -jar app.jar

Затем вам нужно build изображение из Dockerfile с помощью команды построения:

docker build -t app .

Затем запустите его (допустим, он предоставляет порт 8080):

docker run -p 8080:8080 app

Теперь ваше приложение будет доступно в localhost:8080 на вашем компьютере разработчика, но оно будет работать в изолированном контейнере Ubuntu.

...