如何从 Docker compose 安装包?
How to install packages from Docker compose?
大家好,我是 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 包管理器:
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 中不起作用。
为什么不使用专门为此任务设计的 Dockerfile?
将 "image" 属性 更改为 "build" 属性 为 link Dockerfile。
您的 docker-compose.yml 看起来像这样:
services:
lmm-website:
build:
context: .
dockerfile: 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相同的路径下创建一个名为Dockerfile的文本文件,内容如下:
FROM lmm/lamp:php${PHP_VERSION:-71}
RUN apt-get update && apt-get install -y bash
您可以使用 Dockerfile 的 运行(cp、mv、ls、bash...)添加任意数量的 SO 命令,除了其他 Dockerfile 功能,如 ADD、COPY 等.
+信息:
https://docs.docker.com/engine/reference/builder/
+实例:
我做了一个名为 hello-docker-react 的 github 项目。顾名思义,它是一个 docker-react box,可以作为示例,因为我正在使用上面解释的过程安装 yarn 和其他工具。
除此之外,我还使用入口点 bash 脚本启动 yarn linked 到 docker-compose.yml 文件,使用 docker-compose入口点 属性.
我第一次尝试帮忙:
要不要你试一试(我在网上找到的)
FROM lmm/lamp:php${PHP_VERSION:-71}
USER root
RUN apt-get update && apt-get install -y bash
你只能用Dockerfile
来做,因为docker-compose.yml
中的command
运算符只在命令执行期间保持容器活动,然后它停止。
大家好,我是 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 包管理器:
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 中不起作用。
为什么不使用专门为此任务设计的 Dockerfile?
将 "image" 属性 更改为 "build" 属性 为 link Dockerfile。
您的 docker-compose.yml 看起来像这样:
services:
lmm-website:
build:
context: .
dockerfile: 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相同的路径下创建一个名为Dockerfile的文本文件,内容如下:
FROM lmm/lamp:php${PHP_VERSION:-71}
RUN apt-get update && apt-get install -y bash
您可以使用 Dockerfile 的 运行(cp、mv、ls、bash...)添加任意数量的 SO 命令,除了其他 Dockerfile 功能,如 ADD、COPY 等.
+信息:
https://docs.docker.com/engine/reference/builder/
+实例:
我做了一个名为 hello-docker-react 的 github 项目。顾名思义,它是一个 docker-react box,可以作为示例,因为我正在使用上面解释的过程安装 yarn 和其他工具。
除此之外,我还使用入口点 bash 脚本启动 yarn linked 到 docker-compose.yml 文件,使用 docker-compose入口点 属性.
我第一次尝试帮忙:
要不要你试一试(我在网上找到的)
FROM lmm/lamp:php${PHP_VERSION:-71}
USER root
RUN apt-get update && apt-get install -y bash
你只能用Dockerfile
来做,因为docker-compose.yml
中的command
运算符只在命令执行期间保持容器活动,然后它停止。