I had the same when boarding a Princess ship some years ago. Basically, as the cruise is solely going to US ports you are treated as entering the USA as soon as you board the ship. As such, have to go through US immigration just as if you would if you had flown into, say, New York or Los Angeles. They should provide the green card at the port in Vancouver but other readers of this site may be able to confirm this point. It may slow up your boarding compared with US passengers but that's how it is.

Travelled to Alaska via Vancouver last July with Princess who flew us out a day early and checked us and our luggage at the hotel on the morning of the cruise so we only had to do the US immigration at the port. They had the green cards but forgot to give them to us. However at the port in Vancouver we were given the green card to complete and fingerprinted by US immigration. As we had taken a private tour of Vancouver in the morning and arrived at the port around 1.30 it was very quick and painless, no queues whatsoever and very pleasant immigration officials. As we foreigners are very much in the minority on Alaska cruises I think you will find it easy at immigration as they have separate areas for non US passport holders. From past experience your problem may be at Celebrity's own check-in which on a South American cruise on Infinity was the worst I have had in 21 cruises with other companies.

Did this last year, and agree with Sim, above. All very painless, and organised at embarkation. We did the Ketchican Crab tour (by seaplane to remote lodge/landing stage) where we could eat as many crabs as they could cook!! We were on the Legend of the Seas (Royal Caribbean). It was a highlight as so unusual. Do not pay over the top to do the shore excursion on the White Mountain Pass (if that is what it was called??). You can easily pay a fraction of the cost to do it yourself. Hubbard Glacier awesome. Sledging on grass, not snow - so didnt do it. Enjoy.