Je voudrais créer un docker qui exécute un wget chaque minute dans un cron indéfiniment. Pour récupérer les fichiers téléchargés avec wget, je voudrais accéder via FTP. Le serveur FTP utilisé est vsftpd.Comment créer un docker qui exécute un wget sur cron et accéder aux fichiers téléchargés via ftp sur OpenShift?
Le docker local fonctionne bien et peut y accéder via FTP, mais lorsque le docker est déployé sur OpenShift, le conteneur ne démarre pas et crond et vsftpd ne s'exécutent pas.
Quels changements doivent faire sur ce docker pour fonctionner sur OpenShift?
Dockerfile:
FROM alpine:3.4
RUN apk update && apk add vsftpd
RUN adduser -h /home/./files -s /bin/false -D files
RUN echo "local_enable=YES" >> /etc/vsftpd/vsftpd.conf \
&& echo "chroot_local_user=YES" >> /etc/vsftpd/vsftpd.conf \
&& echo "write_enable=YES" >> /etc/vsftpd/vsftpd.conf \
&& echo "local_umask=022" >> /etc/vsftpd/vsftpd.conf \
&& echo "passwd_chroot_enable=yes" >> /etc/vsftpd/vsftpd.conf \
&& echo 'seccomp_sandbox=NO' >> /etc/vsftpd/vsftpd.conf \
&& echo 'pasv_enable=Yes' >> /etc/vsftpd/vsftpd.conf \
&& echo 'pasv_max_port=10100' >> /etc/vsftpd/vsftpd.conf \
&& echo 'pasv_min_port=10090' >> /etc/vsftpd/vsftpd.conf \
&& sed -i "s/anonymous_enable=YES/anonymous_enable=NO/" /etc/vsftpd/vsftpd.conf
RUN apk update && \
apk add wget && \
rm -rf /var/cache/apk/*
COPY myScript /bin/myScript
COPY cron /var/spool/cron/crontabs/root
RUN chmod +x /bin/myScript
RUN echo "files:mypassword" |/usr/sbin/chpasswd
RUN chown files:files /home/files/ -R
EXPOSE 20 21 10090-10100
VOLUME /home/files
CMD /usr/sbin/crond -l 2 -L /var/log/cron.log | /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
Cron:
* * * * * /bin/myScript
myScript:
#!/bin/sh
wget -P /home/files -nv http://www.google.com >> /var/log/cron.log 2>&1
Essayez-vous de l'exécuter sur OpenShift en ligne ou OpenShift Origin? –
Votre image semble avoir besoin de '' root'' pour fonctionner. Les clusters OpenShift auraient normalement la capacité d'exécuter des images comme '' root'' désactivé. La possibilité d'exécuter des images en tant que '' root'' ne peut être accordée que par un administrateur de cluster. Pour déboguer localement ce qui se passe, utilisez '' docker run -u 100000'' pour forcer l'exécution du conteneur en tant qu'utilisateur non '' root''. Ensuite, vous pouvez voir comment cela se brise. –
OpenShift Online – mabg