Can I run a Report Server and a Mirror server from a working Log Shipping secondary instance?
The question is confusing but I think what you're trying to say is that you want to access the data at City-B, using your existing log-shipping setup. 


With regards to the log shipping, at City-B, there is an option [RESTORE ... WITH STANDBY] which will leave the database in restoring mode, however in a READONLY state so it's accessible for SELECT queries. The main restriction with this approach, is that you can only restore a log when all users are out of the database. Depending on your log shipping restore schedule (very frequent/this may not work then), you'd have to kill all the
connections prior to restoring the next log. Test this and re-do your log shipping config.
Depending on your version of SQL, perhaps explore using DB Snapshots at city-B - need to research how this would interact log shipping.
You could install/configure Reporting Services at City-B (which would create the two system report databases). Reports could then query the databases (at city-b) which are involved in log-shipping (but read-only) as per my first point.
If you going to create another instance on City-B, then how about creating a job that performs a backup of databases on City-B (instance1/logshipping) and restoring on City-B (instance2/Reporting Instance) - which you can then access as required.
Mirroring does not let you read from the mirrored instance.


I hope this helps.