gpt4 book ai didi

docker - 如何使用docker-compose在CI上构建应用程序?

转载 作者:行者123 更新时间:2023-12-02 19:24:19 24 4
gpt4 key购买 nike

我想配置诸如TravisCI之类的CI,以从Docker构建我的应用程序。我的应用程序分为两部分:Javascript和Python。

我认为可以使用docker-compose来做到这一点:

version: '3'
services:
node:
image: node:12.8.0-buster
volumes:
- .:/srv
python:
image: python:3.7.4-buster
volumes:
- .:/src

我想要一个Makefile,例如:
all: foo bar

foo:
docker-compose exec node /bin/bash -c ' \
cd /workdir; \
npm install; \
npm run build'

bar:
docker-compose exec python /bin/bash -c ' \
cd /workdir; \
pip install sphinx; \
make html'

这样使用docker compose正确吗?我应该改变使其工作吗?

最佳答案

docker compose不仅支持容器运行,而且还支持镜像构建,请参见this

因此,对于您的情况,您应该在Dockerfile中添加您的软件包构建,并使用docker-compose up -d --build对其执行,这将首先构建一个docker镜像,然后在新的docker镜像上启动服务。

接下来是一个简单的伪代码,接下来的注释仅是说明主要思想,而不是一个完全可行的示例,您需要根据实际情况添加内容。

Dockerfile.node:

FROM node:12.8.0-buster

# Add related to build
ADD . /srv

# Add all package install
RUN cd /workdir && npm install && npm run build

# Others
......

Dockerfile.python:
FROM python:3.7.4-buster

# Add related to build
ADD . /srv

# Add all package install
RUN cd /workdir && pip install sphinx && make html

# Others
......

docker-compose.yaml:
version: '3'
services:
node:
build:
context: .
dockerfile: Dockerfile.node
volumes:
- .:/srv
python:
build:
context: .
dockerfile: Dockerfile.python
volumes:
- .:/src

关于docker - 如何使用docker-compose在CI上构建应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57492039/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com