Изображение Docker с поддержкой Lando

Я пытаюсь создать образ Docker, в котором должен быть предустановлен Lando.

Мой Dockerfile выглядит так:

FROM devwithlando/php:7.1-fpm

RUN apt-get update -y \
  && docker-php-ext-install pcntl
RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
RUN add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
RUN apt-get update
RUN apt-get install -y docker-ce
#RUN usermod -aG docker ${USER}
RUN apt-get update
RUN curl -fsSL -o /tmp/lando-latest.deb http://installer.kalabox.io/lando-latest-dev.deb
RUN dpkg -i /tmp/lando-latest.deb
RUN lando version

Но он показывает "команда Ландо не найдена", Что-то, что я пропустил, Пожалуйста, направьте меня.

1 ответ

Lando имеет по существу 3 зависимости:

  1. Докер (Docker CE в Linux)
  2. Docker-Compose
  3. NodeJS (обычно текущий LTS)

Контейнер, пытающийся запустить сам Lando, вероятно, должен запускаться из[Docker][1]image со всеми типичными модификациями и предостережениями «Docker in Docker», такими как возможное монтирование сокета Docker в контейнере, запуск привилегированного режима и т. д.

В вашем примере используется базовый образ Lando PHP FPM, который вовсе не предназначен для запуска ни Docker, ни Node. Он также основан не на Ubuntu, а непосредственно на Debian (и вы включаете определенный код Ubuntu для установки Docker).

Все это говорит о том, что запуск Lando из контейнера Docker может привести к проблемам с разрешениями и монтированием томов, среди прочего. Это не рекомендуется, хотя возможно.

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

      FROM ubuntu:bionic

RUN mkdir -p /root/.bin && touch /root/.zshrc

RUN apt update && apt upgrade -y && apt install -y \
  git \
  exuberant-ctags \
  neovim \
  python3-pip \
  software-properties-common \
  wget \
  zsh

RUN chsh -s $(which zsh)

RUN add-apt-repository ppa:martin-frost/thoughtbot-rcm \
  && apt update \
  && apt install rcm -y


RUN git clone https://github.com/thinktandem/dotfiles.git ~/dotfiles \
  && mkdir -p ${XDG_CONFIG_HOME:=$HOME/.config} \
  && mkdir -p $XDG_CONFIG_HOME/nvim \
  && ln -s ~/.vim/autoload ~/.config/nvim/ \
  && ln -s ~/.vimrc $XDG_CONFIG_HOME/nvim/init.vim \
  && rcup 

RUN git clone https://github.com/nodenv/nodenv.git ~/.nodenv

RUN git clone \
  https://github.com/nodenv/node-build.git \
  /root/.nodenv/plugins/node-build

RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
  && apt remove cmdtest \
  && apt update \
  && apt install --no-install-recommends yarn -y

RUN add-apt-repository ppa:cpick/hub \
  && apt update \
  && apt install -y hub

RUN apt remove docker docker-engine docker.io \
  && apt install -y \
  apt-transport-https \
  ca-certificates \
  curl \
  software-properties-common && \
  curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  | apt-key add - \
  && add-apt-repository \
  "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  bionic \
  stable" \
  && apt update \
  && apt install -y docker-ce

RUN TEMP_DEB="$(mktemp)" \
  && wget -O "$TEMP_DEB" \
  'https://github.com/lando/lando/releases/download/v3.0.0-rc.1/lando-    v3.0.0-rc.1.deb' \
  && dpkg -i "$TEMP_DEB" \
  && rm -f "$TEMP_DEB"
RUN curl -L git.io/antigen > ~/antigen.zsh
RUN RCRC=$HOME/dotfiles/rcrc rcup 
CMD ["/usr/bin/zsh"]
Другие вопросы по тегам