我有一个运行jenkins的码头集装箱.作为构建过程的一部分,我需要访问在主机上本地运行的Web服务器.有没有办法将主机Web服务器(可以配置为在端口上运行)暴露给jenkins容器?
编辑:我在Linux机器上本地运行docker.
更新:
除了下面的@larsks答案,要从主机获取主机IP的IP地址,我还会执行以下操作:
ip addr show docker0 | grep -Po 'inet \K[\d.]+'
Run Code Online (Sandbox Code Playgroud) 我一直关注这里的docker-compose教程(链接django和postgres容器).虽然我能够完成教程但是我无法继续使用mysql容器重复相同的操作.以下是我的dockerfile和docker-compose.yml`
db:
image: mysql
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
links:
- db:db
Run Code Online (Sandbox Code Playgroud)
`dockerfile
FROM python:2.7
RUN mkdir /code
WORKDIR /code
RUN pip install mysql-python
RUN pip install django
Run Code Online (Sandbox Code Playgroud)
它们在我这样做时都很好,docker-compose up但似乎db环境变量没有传递给django容器,因为当我os.environ.keys()在我的一个django视图中运行时,我看不到任何预期的DB_*环境变量.所以mysql需要不同的设置或我错过了什么.谢谢.
[编辑] Docker撰写版本
docker-compose version: 1.3.0
CPython version: 2.7.9
OpenSSL version: OpenSSL 1.0.1e 11 Feb 2013
Run Code Online (Sandbox Code Playgroud)
Docker版本
Docker version 1.6.2, build 7c8fca2
Run Code Online (Sandbox Code Playgroud) 我的django项目无法连接到postgres数据库容器.我该怎么办?
它崩溃了命令python manage.py collectstatic --noinput && python manage.py makemigrations blog && python manage.py migrate.我知道docker run命令会创建一个新容器,但我在docker-compose.yml中有更多命令作为bash.它应该有效,不应该吗?
我的Dockerfile:
FROM python:3.6-alpine
MAINTAINER Name <name@domain>
ENV PYTHONUNBUFFERED 1
ENV INSTALL_PATH /heckblog
RUN mkdir -p $INSTALL_PATH
WORKDIR $INSTALL_PATH
COPY requirements.txt requirements.txt
# make available run pip install psycopg2
RUN apk update && \
apk add --virtual build-deps gcc python3-dev musl-dev && \
apk add postgresql-dev
RUN pip3 install -r requirements.txt
# add bash into alpine linux
RUN apk add --update bash …Run Code Online (Sandbox Code Playgroud)