Я новичок в Docker и CI, поэтому, пожалуйста, не жмите меня :)
Я использую Linode, и я хотел бы запустить интерфейс (реагировать) и бэкэнд ( python) на том же сервере. Оба будут на разных портах, если вы не скажете мне, что это неправильный подход.
Теперь я запускаю Jenkins на порту 8081
и выполняю два отдельных задания:
Backend Jenkins :
IMAGE = "my_docker_flask:latest"
image = docker.build("${IMAGE}");
def container = image.run('-p 5000:5000')
def contport = container.port(5000)
Backend Dockerfile (flask):
FROM python:2.7
WORKDIR app
COPY . .
RUN pip install -r requirements.txt
ENTRYPOINT ["python"]
CMD ["app.py"]
Frontend Jenkins:
IMAGE = "reactapp"
image = docker.build("${IMAGE}")
def container = image.run('-p 6000:6000')
def contport = container.port(6000)
Frontend Dockerfile:
FROM nginx
COPY build /var/www
Серверная часть работает нормально, когда я открываю свой IP-адрес Linode с портом 5000
, но 6000
не работает. Я даже пробовал с 3333
, но это тоже не работает и.
Вот мой docker ps -a
:
reactapp "nginx -g 'daemon of…" 41 seconds ago Up 40 seconds 80/tcp, 0.0.0.0:6000->6000/tcp
reactapp "nginx -g 'daemon of…" 2 days ago Up 2 days 80/tcp, 0.0.0.0:3333->3333/tcp
my_docker_flask:latest "python app.py" 2 days ago Up 2 days 0.0.0.0:5000->5000/tcp
Пожалуйста, помогите мне?
Как я могу запустить несколько приложений на разных портах, используя один и тот же IP-адрес?
EDIT
Я исправил это, но изменил его на следующее:
COPY build /usr/share/nginx/html
и
def container = image.run('-p 5000:80')