如何从Docker安装软件包?
您好,我是Docker的新手。 我有一个docker-compose.yml ,看起来像这样:
version: "3" services: lmm-website: image: lmm/lamp:php${PHP_VERSION:-71} container_name: ${CONTAINER_NAME:-lmm-website} environment: HOME: /home/user command: supervisord -n volumes: - ..:/builds/lmm/website - db_website:/var/lib/mysql ports: - 8765:80 - 12121:443 - 3309:3306 networks: - ntw volumes: db_website: networks: ntw:
我想从docker-compose文件中安装Yarn包pipe理器:
sudo apt-get update && sudo apt-get install yarn
我无法弄清楚如何声明这一点,我试过了
command: supervisord -n && sudo apt-get update && sudo apt-get install yarn
这失败了。 我如何正确地声明这个? 或者是docker-compose.yml这个错误的地方?
尝试这个
command: supervisord -n && apt-get update && apt-get install yarn
因为sudo在docker中不起作用。
为什么不使用专门为此任务devise的Dockerfile呢?
将你的“image”属性改为“build”属性来链接一个Dockerfile。
您的docker-compose.yml将如下所示:
services: lmm-website: build: Dockerfile container_name: ${CONTAINER_NAME:-lmm-website} environment: HOME: /home/user command: supervisord -n volumes: - ..:/builds/lmm/website - db_website:/var/lib/mysql ports: - 8765:80 - 12121:443 - 3309:3306 networks: - ntw volumes: db_website: networks:
然后在docker-compose.yml的相同path中创build一个名为Dockerfile的文本文件,内容如下:
FROM lmm/lamp:php${PHP_VERSION:-71} RUN apt-get update && apt-get install bash
你可以使用Dockerfile的RUN(cp,mv,ls,bash …)添加尽可能多的SO命令,除了像ADD,COPY等其他的Dockerfilefunction。
+信息:
https://docs.docker.com/engine/reference/builder/
+活例子:
我做了一个叫做hello-docker-react的github项目。 因为它的名字是一个docker反应盒,可以作为一个例子,因为我正在安装纱线加上其他工具使用我上面解释的过程。 一世
除此之外,我还使用docker-compose entrypoint属性使用链接到docker-compose.yml文件的入口点bash脚本开始纱线。
- 为什么我的dockerfile不能正常工作?
- 错误:无法取消链接旧的'gulpfile.js'(权限被拒绝),而使用Docker Compose的开发环境
- 在一个容器中运行nginx以代理在另一个容器中传递Gitlab
- 将标签添加到jenkins的docker图像
- 我们可以在运行时重命名packer.json文件中给出的图像名称的“packer build”命令输出图像吗?
- 如何在Docker容器中运行Docker主机?
- Docker之间的双向通信容器
- 运行Docker镜像时传递可选参数
- Docker:错误创buildaufs挂载到/ var / lib / docker / aufs / mnt / 15396ee0f38d161382f104e11c94b6ca0efafe10f9952e1dfba4f548009fbe59-init:无效参数