duckil_plm/fems-mqtt/Dockerfile

36 lines
1.3 KiB
Docker
Raw Normal View History

2024-11-20 16:38:26 +09:00
# fems-mqtt/Dockerfile
FROM eclipse-mosquitto:latest
2024-11-23 11:56:15 +09:00
ARG MQTT_USERNAME=fems
ARG MQTT_PASSWORD=fems123!
2024-11-25 07:15:01 +09:00
ARG NODE_RED_USERNAME=nodered_user
ARG NODE_RED_PASSWORD=nodered_password123!
2024-11-20 16:38:26 +09:00
2024-11-25 07:15:01 +09:00
# Create directories
RUN mkdir -p /mosquitto/config /mosquitto/data /mosquitto/log /mosquitto/certs
2024-11-25 06:53:53 +09:00
2024-11-25 07:15:01 +09:00
# Copy configuration
COPY ./config/mosquitto.conf /mosquitto/config/
2024-11-23 10:00:42 +09:00
COPY ./config/acl /mosquitto/config/
2024-11-20 16:38:26 +09:00
2024-11-25 07:15:01 +09:00
# Create entrypoint script
2024-11-23 10:04:08 +09:00
RUN echo '#!/bin/sh' > /docker-entrypoint.sh && \
echo 'set -e' >> /docker-entrypoint.sh && \
echo 'touch /mosquitto/data/passwd' >> /docker-entrypoint.sh && \
echo 'mosquitto_passwd -b /mosquitto/data/passwd "${MQTT_USERNAME}" "${MQTT_PASSWORD}"' >> /docker-entrypoint.sh && \
echo 'mosquitto_passwd -b /mosquitto/data/passwd "${NODE_RED_USERNAME}" "${NODE_RED_PASSWORD}"' >> /docker-entrypoint.sh && \
echo 'chown -R mosquitto:mosquitto /mosquitto' >> /docker-entrypoint.sh && \
2024-11-25 07:15:01 +09:00
echo 'chmod 600 /mosquitto/data/passwd' >> /docker-entrypoint.sh && \
echo 'chmod 600 /mosquitto/config/acl' >> /docker-entrypoint.sh && \
2024-11-23 10:04:08 +09:00
echo 'exec "$@"' >> /docker-entrypoint.sh && \
chmod +x /docker-entrypoint.sh
2024-11-20 16:38:26 +09:00
2024-11-25 07:15:01 +09:00
# Set permissions
2024-11-23 10:04:08 +09:00
RUN chown -R mosquitto:mosquitto /mosquitto
2024-11-20 16:38:26 +09:00
2024-11-25 07:15:01 +09:00
EXPOSE 1883 8883
2024-11-23 10:04:08 +09:00
2024-11-25 07:15:01 +09:00
USER mosquitto
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["/usr/sbin/mosquitto", "-c", "/mosquitto/config/mosquitto.conf"]