A cruise ship with a thousand passengers on board that's been drifting at sea for three days without power has finally reached land.

The Costa Allegra, which suffered a fire in its engine room on Monday has docked at a Seychelles port, having been towed by a French fishing vessel.