One crew member and two contractors have died on an Oceania Insignia luxury ocean liner after a fire broke out in the engine room while it was docked at Port Castries in St Lucia.

Oceania Cruises said three people were taken to hospital, one for smoke inhalation and mild respiratory distress.

"We are deeply saddened to learn that two contractors and one crew member did not survive. We extend our deepest condolences to their families during this very difficult time," said Oceania in a statement.

"Arrangements are being made for guests and crew to be accommodated at local hotels until transportation to Miami is arranged."

Insignia was on a 10 night cruise, which departed San Juan on 7 December and was scheduled to arrive in Miami on 17 December. All passengers are safe.

The ship remains in St Lucia while authorities investigate the incident.