我想通过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启动,我遗漏了什么。
发布于 2019-10-04 21:14:38
我不知道你说的是什么意思
<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和password.You需要打开30000-30009端口才能使ftp passive mode工作。
在主机上运行ftp -p localhost 3000检查是否正常。希望能有所帮助。
https://stackoverflow.com/questions/58233342
复制相似问题