The sniper, a 29-year-old man who was on France's terror watch-list, shot three people dead, seriously wounded eight more and left five others slightly injured when he opened fire in three different places in the centre of Strasbourg, where its annual Christmas market is taking place.
Most of the victims are men including a Thai tourist, according to the city's mayor Roland Ries.
"Some of them received a bullet to the head," he told BFMTV.
No children were among the victims.
The man first opened fire at 8.00pm.
At one point he opened fire on a group of law-enforcement officers, who responded but failed to hit him, according to Ries.
A soldier was wounded in the hand and the man hit in the arm, according toLe Monde newspaper.
The man had a criminal record and police had raided his home in a criminal investigation on Tuesday morning.
They reportedly found grenades there.
Police officers and gendarmes, backed up by air support and the anti-terror military force were searching for him on Wednesday morning.
Although borders were closed "immediately", the gunman may have left French territory, according to junior minister Laurent Nuñez.
Strasbourg is on the border with Germany.
Nuñez added that it had not yet been officially established that the attack had a terrorist motive.