A suicide bomber has struck outside a government ministry in the Afghan capital, killing 12 people and wounding 31 days before the start of a holiday ceasefire with the Taliban.

Police said a suicide bomber on foot struck outside the rural rehabilitation and development ministry as employees were leaving work.

No-one immediately claimed the attack, but the Taliban and an Islamic State affiliate regularly strike government targets in the capital and elsewhere.

The Taliban have agreed to a ceasefire coinciding with the three-day Eid al-Fitr holiday marking the end of the Muslim holy month of Ramadan. The holiday is set to begin later this week.

The IS affiliate is not included in the ceasefire.

People treated in hospital
Injured men receive treatment at a hospital following a suicide attack in Jalalabad ,east of Kabul (AP)

Elsewhere in Afghanistan, a roadside bomb struck a microbus in eastern the eastern Ghazni province, killing six people.

Arif Noori, a spokesman for the governor of the Ghazni province, said women and children were among those killed in the blast, which also wounded three people.

He said the bomb was planted by the Taliban.

The insurgents mostly target security forces and government officials, but their roadside bombs often kill civilians.

Elsewhere in Ghazni, at least three local police and 10 Taliban fighters were killed in clashes.

In the eastern Nangarhar province, a suicide bomber wounded at least 10 civilians when he struck near the education department in the provincial capital of Jalalabad.

He said three other suicide bombers were shot and killed by security forces as they tried to enter the building. He said a vehicle filled with explosives was found near the scene of the attack.

In a separate attack in the same province, a bomb wounded 14 civilians near a busy market in the Chaparhar district.

No-one claimed either attack. Both the Taliban and IS are active in eastern Afghanistan, especially Nangarhar.