【问题标题】:How to run stilliard/pure-ftpd through Maven如何通过 Maven 运行 Stilliard/pure-ftpd
【发布时间】:2020-02-02 14:40:52
【问题描述】:

我想通过 maven 运行 stilliard/pure-ftpd。所以当我运行mvn clean install 时,docker 镜像会启动,我的 IT 测试可以与 docker 镜像进行通信。

这就是我的 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 start。

【问题讨论】:

    标签: java maven docker ftp integration-testing


    【解决方案1】:

    我不知道你的意思是什么

    <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 用户(参见设置readme 的运行时 FTP 用户和密码。您需要打开 30000-30009 端口才能使 ftp passive mode 工作。

    在主机上运行ftp -p localhost 3000 检查它是否有效。希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2014-03-20
      • 1970-01-01
      • 2017-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-13
      • 2014-07-18
      • 2021-10-21
      相关资源
      最近更新 更多