Как запустить stilliard / pure-ftpd через Maven - PullRequest
0 голосов
/ 04 октября 2019

Я бы хотел запустить stilliard/pure-ftpd через Maven. Поэтому, когда я запускаю mvn clean install, образ докера раскручивается, и мои ИТ-тесты могут связываться с образами докеров.

Вот так выглядит мой файл pom.xml.file

<plugin>
                <groupId>io.fabric8</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>prepare-it</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>start</goal>
                        </goals>
                        <configuration>
                            <images>
                                <image>
                                    <alias>rabbitmq</alias>
                                    <name>rabbitmq:3-management-alpine</name>
                                    <run>
                                        <ports>
                                            <port>${rabbitmq.port}:5672</port>
                                            <port>${rabbitmq-management.port}:15672</port>
                                        </ports>
                                        <wait>
                                            <http>
                                                <url>http://${rabbitmq.host}:${rabbitmq-management.port}</url>
                                                <method>GET</method>
                                                <status>200..399</status>
                                            </http>
                                            <time>30000</time>
                                        </wait>
                                    </run>
                                </image>
                                <image>
                                    <alias>sftp</alias>
                                    <name>stilliard/pure-ftpd</name>
                                    <run>
                                        <cmd>${sftp.username}:${sftp.password}:::${sftp.directory}</cmd>
                                        <ports>
                                            <port>${sftp.port}:21</port>
                                        </ports>
                                        <wait>
                                            <time>10000</time>
                                        </wait>
                                    </run>
                                </image>
                            </images>
                        </configuration>
                    </execution>
                    <execution>
                        <id>remove-it</id>
                        <phase>post-integration-test</phase>
                        <goals>
                            <goal>stop</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

Все запускается кроме ftp сервера. Я получаю это сообщение, когда запускаю mvn clean install

[INFO] DOCKER> [stilliard/pure-ftpd] "sftp": Start container c40ccb9d35e7
[ERROR] DOCKER> Error occurred during container startup, shutting down...
[INFO] DOCKER> [rabbitmq:3-management-alpine] "rabbitmq": Stop and removed container afbc982dc61b after 0 ms
[ERROR] DOCKER> I/O Error

Чего мне не хватает, чтобы я мог начать stilliard/pure-ftpd.

1 Ответ

0 голосов
/ 04 октября 2019

Я не уверен, что вы имели в виду

<cmd>${sftp.username}:${sftp.password}:::${sftp.directory}</cmd>

, но это не похоже на допустимую команду для контейнера. Если вы посмотрите на Dockerfile , то команда будет выполнена с /bin/bash -c "your command here"

Если вы намеревались запустить сервер и соединиться с пользователем и паролем, следующее будет выполнять эту работу:

<images>
  <image>
    <alias>sftp</alias>
    <name>stilliard/pure-ftpd</name>
    <run>
      <env>
        <FTP_USER_NAME>sw</FTP_USER_NAME>
        <FTP_USER_PASS>pass</FTP_USER_PASS>
        <FTP_USER_HOME>/home/sw</FTP_USER_HOME>
      </env>
      <ports>
        <port>3000:21</port>
        <port>30000:30000</port>
        <port>30001:30001</port>
        <port>30002:30002</port>
        <port>30003:30003</port>
        <port>30004:30004</port>
        <port>30005:30005</port>
        <port>30006:30006</port>
        <port>30007:30007</port>
        <port>30008:30008</port>
        <port>30009:30009</port>
      </ports>
      <wait>
        <time>10000</time>
      </wait>
    </run>
  </image>
</images>

Устанавливает пользователя FTP времени выполнения (см. Раздел Настройка пользователя FTP времени выполнения для readme и пароля. Вам необходимо открыть порты 30000-30009, чтобы сделать ftp пассивнымрежим работа.

Запустите ftp -p localhost 3000 на хосте, проверьте, работает ли он. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...