Food Coop Model for CiviCRM setup
Firstly, props for the work you're doing!

Secondly, the first two bullet points I'm fairly sure you can do out of the box just with config - you can have two membership types with different fees, and you can definitely offer discounts.

The last point is the most interesting. I wonder if a combination of one of either CiviPoints (a brilliant extension written by DaveFF) or CiviVolunteer (a brilliant extension written by Ginkgo Street Labs) with CiviRules (a brilliant extension written by CiviCoop) with perhaps some custom jiggery would help you with the latter.

CiviPoints lets you collect "points" that people have accumulated through different means.
CiviVolunteer lets you track Volunteers' hours and shift allocation.
CiviRules lets you perform actions when conditions are met. I.e. people who donate time, money, or food could then trigger CiviPoints to be awarded and tracked, and when enough points made you could adjust a value that says what discount memberships are allowed.

I know that all of the extensions' authors would be happy to be contacted :)