我想做这样的事情,我可以按顺序运行多个命令.
db:
image: postgres
web:
build: .
command: python manage.py migrate
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
links:
- db
Run Code Online (Sandbox Code Playgroud) 据我所知,&在命令之后使用是为了在后台运行它.
&用法示例:tar -czf file.tar.gz dirname &
但是怎么样&&?(看看这个例子:https://serverfault.com/questions/215179/centos-100-disk-full-how-to-remove-log-files-history-etc#answer-215188)
我目前正在运行一个docker-compose堆栈,用于基本集成测试,包括量角器测试运行器,服务于网页的nodejs服务器和服务于java后端的wildfly服务器.
堆栈是从我的构建服务器(concourse ci)中的dind(docker in docker)容器中运行的.
但似乎容器在完成量角器测试时不会终止.
因此,由于wildfly和nodejs的容器仍在运行,因此构建任务永远不会完成......
如何在测试结束时使作曲成功或失败?
# Test runner
test-runner:
image: "${RUNNER_IMG}"
privileged: true
links:
- client
- server
volumes:
- /Users/me/frontend_test/client-devops:/protractor/project
- /dev/shm:/dev/shm
entrypoint:
- /entrypoint.sh
- --baseUrl=http://client:9000/dist/
- /protractor/conf-dev.js
- --suite=remember
# Client deployment
client:
image: "${CLIENT_IMG}"
links:
- server
# Server deployment
server:
image: "${SERVER_IMG}"
Run Code Online (Sandbox Code Playgroud) 我的nodejs项目有以下文件
FROM node:boron
# Create app directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
# Install app dependencies
COPY package.json /usr/src/app/
RUN npm install
# Bundle app source
COPY . /usr/src/app
# Replace with env variable
RUN envsubs < fil1 > file2
EXPOSE 8080
CMD [ "npm", "start" ]
Run Code Online (Sandbox Code Playgroud)
我使用-e标志运行docker容器,提供环境变量
但我没有看到替代品.当env变量可用时,Run ccommand是否会被执行?
docker ×3
bash ×1
command-line ×1
concourse ×1
javascript ×1
node.js ×1
shell ×1
syntax ×1
yaml ×1