Я хотел бы войти в контейнер докера в интерактивном режиме с помощью запятой / bin / bash, используя только docker-compose.yml.Здесь похожий вопрос о переполнении стека: Интерактивная оболочка с использованием Docker Compose Ответы при условии, что там не работает.Вот как выглядит мой docker-compose.yml:
version: "3"
services:
server:
image: golang:1.11.1
volumes:
- './server:/go'
ports:
- '8080:8080'
command: '-ti'
entrypoint:
- '/bin/bash'
Это моя консоль и вывод:
[bluebrown@firefly gowild]$ docker-compose up --build
Recreating gowild_server_1 ... done
Attaching to gowild_server_1
server_1 | bash: cannot set terminal process group (-1): Inappropriate ioctl for device
server_1 | bash: no job control in this shell
server_1 | root@d5884893075a:/go# exit
gowild_server_1 exited with code 0
Читая вышеупомянутый пост, я попытался, конечно, также заменить:
command: '-ti'
на эти две строки:
stdin_open: true
tty: true
, но при выполнении этого docker compose застревает при подключении:
[bluebrown@firefly gowild]$ docker-compose up --build
Recreating gowild_server_1 ... done
Attaching to gowild_server_1
И дальше ничего не происходит.Нет ошибки и выхода, а также сообщение «Готово».
При попытке сделать это с sh
вместо bash
, он говорит следующее дляcommand: '-it
:
server_1 | /bin/sh: 0: Illegal option -t
А также застревает, как и bash, при подключении при его замене.
Обратите внимание, что я могу собрать и запустить сервер без команды и точки входа, просто используяследующее:
docker-compose up
docker-compose run --service-ports server
Тем не менее мой вопрос заключается в том, как сделать это с помощью docker-compose и точки входа, чтобы это можно было сделать только с docker-compose up
.
Обновление: я использую Linuxmanjaro