Я не знаю ни одной программы, которая принимает параметр и отправляет его по TCP-соединению.
Однако вы как бы ответили на свой вопрос в своих комментариях, в частности, в следующей строке.
ENTRYPOINT ["/bin/sh", "-c", "mycommand"]
Я понимаю, что вы, похоже, хотите, чтобы в вашем образе было минимальное количество приложений, но я считаю, что лучшим решением будет иметь shell
и netcat
., а затем использовать исходную команду. Ну, по крайней мере, чтобы проверить, что вы пытаетесь сделать.
Если в конце дня вы захотите вернуться только к одному исполняемому файлу, вам придется написать для этого собственную программу.
Одна мысль, я вижу этот пример ,показывает настройку Python для запуска скрипта,
FROM python:2.7-slim AS build-env
ADD. /app
WORKDIR /app
FROM gcr.io/distroless/python2.7
COPY --from=build-env /app /app
WORKDIR /app
CMD ["hello.py", "/etc"]
что может быть проще/быстрее, чем разработка C
программы для всего этого, но тогда фактически вы используете Python как SHELL . Наконец, если вы думаете, что socat
будет делать то, что вы хотите, не могли бы вы использовать socat
для чтения из файла (, который вы включаете в свой образ ), и этот файл содержит литеральную строку.
msmtp
работает только с именем пользователя и паролем, например/etc/msmtprc
:
defaults
# Use TLS on port 465
port 587
tls on
tls_starttls on
# Syslog logging with facility LOG_MAIL instead of the default LOG_USER
syslog LOG_MAIL
# Mail account
account root@yourserver.de
from yourserver dom0 <root@dom0.yourserver.de>
# Host name of the SMTP server
host mail.yourserver.de
auth on
user root@yourserver.de
password yourpass
account default: root@yourserver.de
не забудьте удалить все ненастроенные другие агенты MTA и установить msmtp-mta
(, который символически связывает sendmail с msmtp)