We took a Viking cruise from Basel to Amsterdam. High water stopped Viking from going into Basel. We had to board the cruise in Breisach. We took an Sbahn from Freiburg.
The Dbahn App shows multiple routes from Breisach to Colmar using that Sbahn in reverse. None look straightforward. Buses are usually listed on the DB app but I did not see any listed. The train station is walkable from the boat dock. Breisach is a fairly small town but you will likely need a map or map app.
As an additional note, when we were direct to Breisach to catch the cruise, we were told about the Viking Dock in Breisach (on Google Maps). There was a Viking ship there but it was not ours. They told us that they knew nothing about our Viking ship. They had noticed another Viking ship along the Rhine about 1/2 mile. We walked there and it was ours. It was docked at a brickyard, probably a rented alternative dock. Later our ship moved to the official Viking berth.
Your plans may or may not be simple. The concierge on the Viking ships have been good for information like this.